Файловые потоки
От: AlexBSD Украина  
Дата: 09.01.02 20:32
Оценка:
Создаю файловый поток f для i/o и пишу следущее:
while(!f.eof())
{
ch=f.get();
if(ch=='\n') count++;
}
Этот кусок кода считает кол-во строк в файле. Потом дописываю следущее:
cout<<f.tellg();
Выводимый результат сравнил в двух компиляторах:
1. Visual C++ v. 6.0 Пишет, что текущая позиция указателя get в потоке -1.
2. Borland C++ v. 5.02 Пишет правильную позицию.
В чём дело с Висуаль?? И после этого не хочет менять позицию в потоке с помощью seekg().
И ещё вопрос. С++ управляет двумя указателями в потоке get и put. При изменении позиции одного меняеться позиция и другого. Так и должно быть??? Почему???
Windows — MUSTDIE!!! FreeBSD — rulezzzz!!!
Re: Файловые потоки
От: IT Россия linq2db.com
Дата: 10.01.02 04:06
Оценка:
Здравствуйте AlexBSD, Вы писали:

ABSD> В чём дело с Висуаль??


А что собственно нужно сделать то?
Если нам не помогут, то мы тоже никого не пощадим.
Re: Файловые потоки
От: retalik www.airbandits.com/
Дата: 10.01.02 04:30
Оценка:
Здравствуйте AlexBSD, Вы писали:

ABSD>Создаю файловый поток f для i/o и пишу следущее:

ABSD>while(!f.eof())
ABSD>{
ABSD> ch=f.get();
ABSD> if(ch=='\n') count++;
ABSD>}
ABSD>Этот кусок кода считает кол-во строк в файле. Потом дописываю следущее:
ABSD>cout<<f.tellg();
ABSD>Выводимый результат сравнил в двух компиляторах:
ABSD>1. Visual C++ v. 6.0 Пишет, что текущая позиция указателя get в потоке -1.
ABSD>2. Borland C++ v. 5.02 Пишет правильную позицию.
ABSD> В чём дело с Висуаль?? И после этого не хочет менять позицию в потоке с помощью seekg().
Ты старой библиотекой пользуешься (fstream.h) или STL-овской?
В старой меня VC "порадовал" таким глюком, когда в файле символ 0xff ('я') встречался. Все сбрасывалось в EOF.
В STL версии все правильно.

ABSD> И ещё вопрос. С++ управляет двумя указателями в потоке get и put. При изменении позиции одного меняеться позиция и другого. Так и должно быть??? Почему???

Для файлового потока — так и должно быть. Это описано в документации.
Успехов,
Виталий.
Re[2]: Файловые потоки
От: vladsm Россия  
Дата: 10.01.02 06:18
Оценка:
Здравствуйте retalik, Вы писали:

R>Ты старой библиотекой пользуешься (fstream.h) или STL-овской?

R>В старой меня VC "порадовал" таким глюком, когда в файле символ 0xff ('я') встречался. Все сбрасывалось в EOF.
R>В STL версии все правильно.

Ксатити, а вы не подскажете где взять STL версию? А то всегда обходил 0xff кривыми дорогами.
Re[3]: Файловые потоки
От: retalik www.airbandits.com/
Дата: 10.01.02 06:35
Оценка: 1 (1)
Здравствуйте vladsm, Вы писали:

V>Здравствуйте retalik, Вы писали:


R>>Ты старой библиотекой пользуешься (fstream.h) или STL-овской?

R>>В старой меня VC "порадовал" таким глюком, когда в файле символ 0xff ('я') встречался. Все сбрасывалось в EOF.
R>>В STL версии все правильно.

V>Ксатити, а вы не подскажете где взять STL версию? А то всегда обходил 0xff кривыми дорогами.

Где-где, в винде В комплекте VC, конечно:
#include <fstream>
using namespace std;

Глюков с 0xff точно нет.
Успехов,
Виталий.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.