ファイルの読み書きfstreamクラス
ロベールのC++入門講座 08-04
ファイルの読み書きはC言語のときに色々やりましたが、C++ではまだ殆どやってませんでした。
当然Cのようにfopen等で同じような実装もできるのですが、折角なのでC++特有のファイルの読み書きの方法を勉強したいと思います。
fstreamクラスです。
#include <iostream> #include <fstream> #include <string> using namespace std; int main () { fstream file; string data; file.open("main.cpp",ios::in); if ( !file.is_open() ) { cout << "file open error" <<endl; return EXIT_FAILURE; } while(getline(file,data)){ cout << data << endl; } file.close(); return 0; }
$ main #include <iostream> #include <fstream> #include <string> using namespace std; int main () { fstream file; string data; file.open("main.cpp",ios::in); if ( !file.is_open() ) { cout << "file open error" <<endl; return EXIT_FAILURE; } while(getline(file,data)){ cout << data << endl; } file.close(); return 0; }
うまくいってますね。
stringクラスのおかげでめちゃくちゃ処理が短いです。
C言語の場合、メモリを動的に確保したり、フラグメンテーションを意識したりとかなり大変な処理だったんですがC++スッキリ書けますね。