Звонок vfile.getline(header, FILENAME)
, вероятно, неверен.Подпись:
istream::getline(char *s, streamsize n)
, где s
указывает на выходной буфер, а n
- размер буфера.
Я сомневаюсь, что ваш FILENAME
является целым числом... это, вероятно, char const*
, что g ++ неявно приводит к streamsize
?(Eeuw ... используйте -Wall -ansi
, если можете.) Это будет иметь значение, зависящее от компилятора, и если оно меньше длины строки, это приведет к тому, что ваш поток перейдет в состояние ошибки (установите failbit
).Последующие чтения не будут выполняться до тех пор, пока состояние ошибки не будет сброшено.
Вместо этого следует использовать
getline(vfile, header);
, где header
- это std::string
.