C+--ストリームのファイルI/O(Input&Output)
4703 ワード
ストリームでファイルをI/O操作するには、必ず
基本フレームワーク
入力の確認入力をさらに操作する前に、入力ファイルが正常に開くかどうかを判断し、成功すれば続行し、そうでなければ終了し、ここでは を使用する.
出力の生成
基本フレームワーク
追加出力(既存ファイルを上書きしない)ストリームがファイルとして出力される場合、デフォルトでは新しいファイルが出力されます.つまり、同じ名前のファイルがすでに存在する場合、新しく生成されたファイルに上書きされます.しかし、以前のレコードを上書きせずにデータを複数回収集するために複数回実行する必要がある場合は、メンバー関数 ただし、 を導入する.
完全なコード
#include
入力の取得基本フレームワーク
ifstream in_stream;
in_stream.open("in_stream.dat");
...
in_stream.close();
入力の確認
fail
メンバー関数//
if(in_stream.fail())
{
cout << "input error.
" << endl;
exit(1);
}
//
if(out_stream.fail())
{
cout << "output error.
" << endl;
exit(1);
}
出力の生成
基本フレームワーク
ofstream out_stream;
out_stream.open(out_stream.dat);
...
out_stream.close();
追加出力(既存ファイルを上書きしない)
open
を変更できます.out_stream.open("out_stream.dat",ios::app);
ios::app
のパラメータを加える前に、必ず
完全なコード
#include "iostream"
#include "fstream"
#include "cstdlib"
using namespace std;
int main(int argc, char const *argv[])
{
char In_File_Name[16],Out_File_Name[16];
ifstream In_Stream;
ofstream Out_Stream;
cout << "I will sum three numbers taken from an input" << endl
<< "file and write the sum to an output file" << endl;
cout << "Enter the input file name(maximum of 15 characters):" << endl;
cin >> In_File_Name;
cout << "Enter the output file name(maximum of 15 characters):" << endl;
cin >> Out_File_Name;
cout << "I will read numbers from the file"
<< In_File_Name << " and" <"place the sum in the file "
<< Out_File_Name << endl;
In_Stream.open(In_File_Name);
if(In_Stream.fail())
{
cout << "Input file opening error!" << endl;
exit(1);
}
Out_Stream.open(Out_File_Name);
if(Out_Stream.fail())
{
cout << "Output file opening error!" << endl;
exit(1);
}
int first,second,third;
In_Stream >> first >> second >> third;
Out_Stream << "The sum of input is " << (first + second + third) << endl;
In_Stream.close();
Out_Stream.close();
cout << "Programme run successfully!" << endl;
return 0;
}