..
while ( ! infile.getline( temp, sizeof(temp) ).eof() )
{
cout << temp << endl;
..
}
..
fstream
что-то не пойму:
почему класс ifstream неправильно воспринимает конец файла ??
функция eof() срабатывает где-то в его начале, а не в конце.
есть программка-пример:
#include "stdafx.h"
#include <fstream>
using namespace std;
void main()
{
ifstream infile("F:\\temp.txt");
char j;
char temp[1000];
int i=0;
while(1)
{
if(infile.eof())
break;
infile.getline(temp,1000);
cout<<temp<<endl;
i++;
};
infile.clear();
infile.close();
cout<<i<<endl;
};
и есть файл(в нем более 1000 строк) - http://webfile.ru/1371636
а i показывает только 222 !!
как это и почему ??
Цитата: user1
вот.
что-то не пойму:
почему класс ifstream неправильно воспринимает конец файла
...
и есть файл(в нем более 1000 строк) - http://webfile.ru/1371636
а i показывает только 222 !!
как это и почему ??
что-то не пойму:
почему класс ifstream неправильно воспринимает конец файла
...
и есть файл(в нем более 1000 строк) - http://webfile.ru/1371636
а i показывает только 222 !!
как это и почему ??
Этот код нормально работает:) Любой тектовый файл больше 1000 строк
читает нормально.Может дело в файле.Я его не качал.
Только вот по корявому написан. К тому же он у тя одну лишнюю строку прочитает!!
Код:
З.Ы.: твой файл тоже не качал!!
Согласен с m_Valery насчет возможности корявости файла - хотя в чем эта корявость может заключаться интересно, если он конец файла воспринимает!! ?
шифрованный текстовый файл.....
Цитата: user1
шифрованный текстовый файл.....
Цитата:
..
[FONT=MS Sans Serif]Существуют некоторые особые тонкости, связанные с файлами текстового режима, на которые следует обратить особое внимание и запомнить. Первая из них - символ EOF (26 в коде ASCII или Ctrl+Z) - представляет собой метку (символ) конца файла. В текстовом режиме, где встречается символ EOF, система C++ низкого уровня автоматически продвигается к концу файла; вы ничего не можете прочитать после специального символа. Это может вызвать проблемы, если такой специальный символ окажется в середине файла.[/FONT]
[FONT=MS Sans Serif]..[/FONT]
Делай выводы!!
Открывай файл в бинарном режиме.