Форум программистов, компьютерный форум CyberForum.ru

ввод/вывод класса и файл. - C++

Восстановить пароль Регистрация
 
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
16.04.2012, 16:57     ввод/вывод класса и файл. #1
Добрый день.
В условии задачи требуется реализовать перегрузку потоков с той целью, чтобы работать с файлом.
Проблем особых не возникло, если файл открыт в обычном режиме.

Прототипы в классе у меня вот такие
C++
1
2
friend ofstream& operator<< ( ofstream& os, const polynomial& in);
friend ifstream& operator>> (ifstream& is, polynomial& in);
Работа данных функций сводится к
C++
1
return ofs << string;
и
C++
1
2
3
4
5
while( !ifs.eof() ){
    is >> tmp[i++];
    ...
}
return ifs;
Но возникла проблема в бинарном режиме работы с файлами, так как чтение и запись там другие.
Как быть? Есть ли свойство у ifstream ifs, которое указывало бы на режим открытия потока?
Как то можно отличить в функции ifs (который передается как аргумент), созданный вот так
C++
1
ifstream ifs("input.txt", std::ios::binary);
или вот так
C++
1
ifstream ifs("input.txt");
спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 16:57     ввод/вывод класса и файл.
Посмотрите здесь:

Ввод и вывод данных класса C++
C++ Ввод и вывод строки собственного класса
Ввод и вывод в файл C++
Ввод\вывод в файл C++
Ввод и вывод в файл C++
Ввод-вывод в файл C++
C++ Ввод/вывод, метод класса
C++ Файл ввод-вывод

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.04.2012, 17:02     ввод/вывод класса и файл. #2
для бинарного режима read и write
вот тут справка, гляньте
http://www.cplusplus.com/reference/i.../istream/read/
no0ker
100 / 87 / 4
Регистрация: 17.12.2010
Сообщений: 416
17.04.2012, 17:06  [ТС]     ввод/вывод класса и файл. #3
да я знаю, что read() и write().
может быть я неправильно обьяснил.
есть
ifstream ifs("input.txt");
и в случае с
ifs>>MyClass;
вызывается
friend ifstream& operator>> (ifstream& is, MyClassl& in);
// все работает.

и есть
ifstream ifs("input.txt", std::ios::binary);
и в случае с
ifs>>MyClass;
тоже вызывается
friend ifstream& operator>> (ifstream& is, MyClassl& in);
// не работает, так как она "не знает", что ifs - создано в бинарном режиме.
// не работает, так как она "не знает", что необходимо использовать read() и write().
Как сделать так, что бы
friend ifstream& operator>> (ifstream& is, MyClassl& in);
могла определить какой это ifs - обычный или бинарный?

Добавлено через 18 минут
я хочу писать
ifs >> MyClass A;
и не думать. какой это ifs - бинарный или нет.

Добавлено через 15 часов 8 минут
up...

Добавлено через 8 часов 20 минут
up... (да простят меня админы)
Yandex
Объявления
17.04.2012, 17:06     ввод/вывод класса и файл.
Ответ Создать тему
Опции темы

Текущее время: 09:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru