質問編集履歴

1 typoの修正

jnst

jnst score 34

2017/02/28 22:00  投稿

C++でしたファイルを保存せずに閉じる
C++でファイルを保存せずに閉じる
###実現したいこと
あるオブジェクトを読み込んで内容をJSONファイルに出力する処理を書いています。
ある条件になったときはファイルに保存せずに終了したいのですがどのようなやり方があるでしょうか。
###該当のソースコード
```c++
FILE* fp;
char buf[512];
   
fp = fopen(path.c_str(), "wb");
FileWriteStream ws(fp, buf, sizeof(buf));
PrettyWriter<FileWriteStream> writer(ws);
   
for (Object o : objects)
{
 // 書き込む処理
}
fclose(fp);
```
###試したこと
現状は `fopen` する前にあらかじめ for 文で objects をすべて走査し、該当する条件になったときは `return` してしまうコードにしています。
このやり方だと objects を2回走査しなければならないためスマートではありません。
他には該当する条件になったときはファイルを削除するという方法もあると思いますが、これも余計なことをしていますよね。
他には該当する条件になったときはファイルを保存した後に削除してしまうという方法もあると思いますが、これも余計なことをしていますよね。
そもそもファイルを保存したくないのです。
  • C++

    5144 questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • JSON

    1727 questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る