При измен. <fstream.h> на <fstream> прогр. не раб.
От: Алексей Россия  
Дата: 12.09.01 14:49
Оценка:
Здравствуйте.
Никак не могу разобраться почему программа(см. ниже) работает по разному при изменении первых трех строчек.

#include <fstream.h>
//#include <fstream>
//using namespace std;

int main() {

// в файле "test.txt" 3 символа
ifstream fin("test.txt");
char buf[3];

while (fin.getline(buf, 3))
{
}

fin.close();
return 0;
}

Эта программа работает нормально, читает сначала 2 символа и добавляет '\0' в конец "buf", потом читает оставшийся 1 символ и добавляет '\0'.
Если раскомментировать 2-ю и 3-ю строки и закомментировать 1-ю, программа вообще ничего не читает, повидимому сразу возвращает EOF.
Что это может быть и можно ли это обойти?
Спасибо.
Re: При измен. <fstream.h> на <fstream> прогр. не раб.
От: Yevgeny  
Дата: 12.09.01 19:43
Оценка:
Здравствуйте Алексей,

Если вы используете <fstream> от STL, который идет с Visual C++ (Dinkumware STL),
то скорее всего это его баг. Я уже наталкивался на подобные глюки в его потоковых классах.
На сайте Dinkumware (www.dinkumware.com) можно найти список багов и как их лечить.
Альтернативный вариант — установить у себя версию STL от STLport (www.stlport.com)

Успехов,
Yevgeny.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.