Вы проверяете только eof флаг, а ввод может не сработать по другим причинам, например, неправильный формат данных.
Вместо
Код:
while ( !F.eof() )
напишите
Код:
while ( !F )
Это провека всех ошибок.
Кроме того, проверять надо после ввода перед использованием переменных с результатом, т.к. именно этот ввод мог не закончиться. В вашем случае сразу после
Код:
F >> a;
надо проверить результат.
Можно и ввод, и проверку сделать в одну строчку:
Код:
if ( !(F >> a) ) error("Failed to read a");
-- Ср дек 03, 2014 13:12:44 --Тут нужны потоки в смысле thread, а будут ли stream в коде — безразлично. Очевидно, минимумом будет два потока — один основной, с консолью, и другой, читающий файл.
Это потом, сначала надо с файлами разобраться.