Проверьте копию содержимого в файл при использовании std: ofstream - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь обновить некоторый код и изменить файловую операцию fopen () с помощью std: ofstream. Во время операции с файлом fopen функция fputs () используется для записи содержимого в файл с ошибкой. Проверка возврата fputs :: (fputs() return a nonnegative number on success, or EOF on error).Мне нужно проверить копию содержимого в файл.

Этот пример взят из: cplusplus.com

// ofstream::open / ofstream::close
#include <fstream>      // std::ofstream



int main () {

  std::ofstream ofs;
  ofs.open ("test.txt", std::ofstream::out | std::ofstream::app);

  ofs << " more lorem ipsum";

  ofs.close();

  return 0;
}

Я пытаюсь найти способ проверить ofs << " more lorem ipsum"; операцию. Есть ли какой-либо вид возвратаэтой операции? Это бросает что-то?

С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 27 февраля 2019

Многие операции с потоком, включая операторы << (в вашем случае функция, не являющаяся членом operator<< ), возвращает сам поток.И у объектов потока есть оператор логического преобразования , который можно использовать в условии, чтобы проверить, находится ли поток в хорошем состоянии или нет.

Например, например

if (ofs << " more lorem ipsum")
{
    // Output operation okay
}

Это наиболее часто используется для ввода.


Также есть возможность установить маску исключения , которая заставит потоки генерировать исключения наопределенные состояния.

Исключения по умолчанию отключены.

...