出力ファイル・オープンフラグ
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
C++では、ファイルへの出力(書き込み)も、入力(読み込み)同様に可能です。
ファイルのデータを入力(読み込み)/iostream・fstreamで、使ったデータファイルを用いて、読み込んだファイルのデータを、別のファイルを作成して書き込むコードを見てみます。
スポンサーリンク
numbers.dat
12 34 56 345 45677 7867 11 456
プログラム本体。
numbers.datから、数字を読み込んで、data.logという新しいファイルを作成し、data.logに書き込み(出力)を行います。
std::ofstreamでは、出力ファイルのフラグ(オープンフラグ)を設定できます。
#include <iostream> #include <fstream> #include <cstdlib> #include <assert.h> // 数字を受け取り、data.logファイルに書き込むルーチン void output(const int& number) { std::ofstream out_file("data.log", std::ios::out|std::ios::app|std::ios::ate); // 以下オープンフラグ // std::ios::out ファイルを出力モードでオープン // std::ios::app 出力ファイルの末尾にデータ追加 // std::ios::ate ファイルのオープン時にファイルの末尾に移動 if (out_file.fail()) return; out_file << number << std::endl; } int main() { const int DATA_SIZE = 8; // データ数 int data_array[DATA_SIZE]; // データ std::ifstream data_file("numbers.dat"); // 入力ファイル int i; if (data_file.fail()) { std::cerr << "Error: Could not open\n"; exit (8); } for (i = 0; i < DATA_SIZE; ++i) { assert(i >= 0); assert(i < static_cast<int>(sizeof(data_array)/sizeof(data_array[0]))); data_file >> data_array[i]; } int total; // 数値の合計 total = 0; for (i = 0; i < DATA_SIZE; ++i) { assert(i >= 0); assert(i < static_cast<int>(sizeof(data_array)/sizeof(data_array[0]))); // numbers.datから読み込まれたデータをdata.logファイルに書き込む output(data_array[i]); } return 0; }
このプログラムを実行した結果、同じディレクトリ(フォルダ)にdata.logという名前のファイルが作成されることを確認できます。
そして、data.logをテキストエディタで開いて確認しますと・・・
12 34 56 345 45677 7867 11 456
と、numbers.datから読み込まれた数字が、書き込まれていることを確認できます。
スポンサーリンク
>> 次の記事 : ASCIIコードの実験
<< 前の記事 : 変換ルーチン・I/O変換フラグ
- - 関連記事 -
- std::printf・std::scanf/Cの出力・入力関数
- CのI/Oライブラリ・ファイル読み取りと書き込み
- readとwrite・バッファを使用しないI/O
- バッファを使用しないI/O
- バイナリデータ・バイナリファイルのI/O
- ASCIIコードの実験
- 変換ルーチン・I/O変換フラグ
- ファイルのデータを入力(読み込み)/iostream・fstream
スポンサーリンク