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

Периключение режима файла - C++

Восстановить пароль Регистрация
 
HenryDukart
 Аватар для HenryDukart
100 / 100 / 28
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
26.11.2013, 21:34     Периключение режима файла #1
Есть бинарный файл. Я в него сначала записал информацию. Потом ее необходимо считать. Как правильно его закрыть\открыть и нужно ли где-нибудь устанавливать указатель на начало? Через потоки.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.11.2013, 21:44     Периключение режима файла #2
Один поток для чтения/записи, или два отдельных потока?
HenryDukart
 Аватар для HenryDukart
100 / 100 / 28
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
26.11.2013, 21:50  [ТС]     Периключение режима файла #3
alsav22, через один.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.11.2013, 22:20     Периключение режима файла #4
Если два отдельных потока:
C++
1
2
3
4
5
6
ofstream fout("file", ios::binary);
// запись в файл
fout.close();
ifstream fin("file", ios::binary);
// чтение из файла
fin.close();
Добавлено через 2 минуты
Цитата Сообщение от HenryDukart Посмотреть сообщение
через один.
Если через один, то файл уже должен существовать. При создании потока для чтения/записи, и подключения его к файлу, файл не создаётся (в отличие от создания потока для записи).

Добавлено через 5 минут
Так:
C++
1
2
3
4
5
6
fstream fio("file", ios::out | ios::binary);
// запись в файл
fio.close();
fio.open("file", ios::in | ios::binary);
// чтение из файла
fio.close();
Или так:
C++
1
2
3
4
5
6
fstream fio("file", ios::in | ios::out | ios::binary);
// запись в файл
fio.flush();
fio.seekg(0);
// чтение из файла
fio.close();
Добавлено через 15 минут
Немного соврал. Если так создавать один поток для чтения/записи, то файл будет создаваться:
C++
1
2
3
4
5
6
fstream fio("file", ios::out | ios::binary);
// запись в файл
fio.close();
fio.open("file", ios::in | ios::binary);
// чтение из файла
fio.close();
Но перейти от записи к чтению (как во втором варианте) без закрытия файла и открытия его для чтения не получится.
Во втором варианте файл создаваться не будет. Т.е., зависит не от потока, а от режима открытия файла.
Yandex
Объявления
26.11.2013, 22:20     Периключение режима файла
Ответ Создать тему
Опции темы

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