生データのファイル入出力
ロベールのC++入門講座 08-08
C言語のときにもやりましたね。C++ではfstreamで同様のことが可能です。
#include <iostream> #include <fstream> #include <string> using std::cout; using std::endl; int main (int argc,const char* argv[]) { std::string type("w"); if ( argc >= 2 ) { type = argv[1]; } std::fstream file; int i; if ( type == "w" ) { file.open("test.txt",std::ios::out|std::ios::binary); if (! file.is_open() ) { return EXIT_FAILURE; } i = 12345678; file.write( reinterpret_cast<char*>(&i), sizeof(int) ); file.close(); cout << "write test.txt" << endl; } else if ( type == "r" ) { file.open("test.txt",std::ios::in|std::ios::binary); if (! file.is_open() ) { return EXIT_FAILURE; } file.read( reinterpret_cast<char*>(&i), sizeof(int) ); file.close(); cout << i << endl; } else { cout << "type error" << endl; return EXIT_FAILURE; } return 0; }
$ main w write test.txt $ main r 12345678
久しぶりにコマンドライン引数の処理を書いてみました。
使ってないと忘れそうですからね。
writeで出力、readで入力ですね。クラスになっただけでC言語と殆ど書き方が変わりません。