2015-04-06 2 views
-3

всего лишь короткий вопрос о записи в файл на C++. Все записывается в файл, когда я использую file.close(); и не раньше. Поэтому мне нужно только проверить, может ли файл быть открыт, а также если команда закрытия работает. Этого достаточно для обработки ошибок в C++ с использованием потока?Напишите ошибку обработки файлов

Приветствия

+1

Неверно, что данные записываются в файл только при вызове 'close()'. Если это то, что вы видите, вы, вероятно, являетесь свидетелем некоторой буферизации в действии. Попробуйте отключить буферизацию или вызвать 'flush()'. –

ответ

1

No. Вы должны проверить ошибки после того, как индивидуум пишет хорошо. Как сказал @FrerichRaabe, записи на самом деле происходят до файла .close(). Однако вы можете не видеть, что эти записи происходят из-за буферизации. Но ошибки могут произойти и в другое время.

+0

ok, поэтому я должен проверять каждый раз, когда я использую file.write (char, length); например: file.write (char1, length1); если (file.fail()) {// ошибка}; file.write (char2, length2); если (file.fail()) {// ошибка}; есть лучшее решение? – Chuck

Смежные вопросы