はかせのラボ

私の頭の中を書いていく雑記ブログです

C++ ファイル書き出し

あいさつ

どうも、はかせです。
今回はファイル書き出しをやってみます。

実装方法

やり方は簡単でofstreamっていうものを使います。
このストリームはコンストラクタかopen関数にパスを渡すことで
ファイルを開くor生成してくれます。

あとはストリームに対して<<演算子で書き込む内容を入れるだけで
ファイル書き出しが出来ます。

#include <fstream>

//ファイルオープン(無ければ作る)
std::ofstream writeFile;
//Dataフォルダの直下にあるTest.txtを開く(無ければ作る)
writeFile.open("Data/Test.txt");
//ファイルの中に書き込む
std::cout << "書き込む文字を入力:";
//入力をstringに格納
std::string writeText;
std::cin >> writeText;
//入力された内容をファイルに書き込む
writeFile << writeText;

open関数にオプションを設定することで追加書き込みとかが
できるようになるようです。

std::ios::out //出力専用
std::ios::add //追加書き込み
std::ios::trunc //上書き

なにも設定しないとtruncが設定されているような動きをしていました。

あとがき

今回はファイルの書き出しでした。
今回ファイル書き出しを調べて検証した理由ですが
①ファイル読み込みはやったことがあったが書き出しはやったことがなかった
②ハイスコアなどの機能を実装するときに必要になる

という理由です。

読み込みではWIN32APIを用いて実装しましたが
これはフォルダ単位で操作したかったからです。

ただの単一ファイルに対して操作を行うならストリームを
使ってやるのが楽そうです。
書き込みで使えるofstreamの他にも
ifstreamという読み込み用のストリームもあるそうです。
(o = output、i = inputということだと思います)

それでは今回はこの辺でノシ

参考

qiita.com