Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Потоки ввода/вывода для файлов |
Автор: Maxx 8.12.2006, 08:14 |
Открыто 2 потока ofstream и ifstream для одного и того же двоичного файла. Пишем в файл. Тут же пытаемся прочитать. А ничего... Пробовал закрыть и заново открыть потоки, но безрезультатно. Читается только после перезапуска программы. Help!!! |
Автор: codelord 8.12.2006, 08:40 |
покажи как ты это делаешь |
Автор: Earnest 8.12.2006, 08:58 |
Возможно просто данные остаются в буфере. Ты же не думаешь, что каждый символ сразу в файл пишется? А буферы у ввода и вывода разные. Надо после записи сделать выходному потоку flush, а потом уже читать. |
Автор: Maxx 8.12.2006, 16:41 | ||
И ничего... Даже пробовал потоки закрывать и заново открывать - не помогает Вот единственное решение которое пока нашел это FILE. |
Автор: JackYF 8.12.2006, 17:06 | ||
Ты fi открыл на запись, а fo - на чтение. Надо наоборот. |
Автор: Maxx 8.12.2006, 17:57 |
не работает... В файл пишет... В ходе работы программы смотрел, а читать не хотит!!! |
Автор: JackYF 8.12.2006, 21:14 |
Попробуй открыть файл fi после закрытия fo. |
Автор: Maxx 9.12.2006, 05:58 |
Файл то один и тот же!!!! А нельзя. Надо почитать - поизменять - почитать с изменениями!!! |
Автор: zabivator 10.12.2006, 23:16 |
Maxx, попробуй использовать std::fstream вместо двх потоков. А то чорт там разбери, как они буферизуют все это барахло, и как операционка буферузует это еще сама. |
Автор: Любитель 11.12.2006, 10:54 |
Если пишешь и читаешь в один (с одного) файл(а), то юзай std::fstream. Вызывай seekg/p перед переходом с чтения на запись. В флагах задай все три (бинари, рид, райт). |
Автор: zabivator 11.12.2006, 11:11 | ||
+1 |
Автор: Maxx 14.12.2006, 09:13 |
ОК. Я уже рахобрался. Файл открывается с исключительной блокировкой по умолчанию и второй поток тупо не откроется. |