IO関連
sscanfでは[;]とかが無視されてしまう.
sscanf(str.c_str(), "var see_ok_%s = %s;", word, flag); flag = ~~~;ってついちゃう.
getline
string型の欄にgetlineがある。http://www.cppreference.com/wiki/jp/io/getline
#includeistream& std::getline( istream& is, string& s ); istream& std::getline( istream& is, string& s, charT delimiter ); デリミタが指定されている場合はそれを終端として利用する.getline( is, s, is.widen( '\n' ) ); //メンバ関数ではないので、s.getlineとかはだめ.普通に、getline(ifs, s)とかでOK! istream型にもgetlineがあって、この定義は、 istream& istream::getline( char* バッファ, streamsize 文字数 ); istream& istream::getline( char* バッファ, streamsize 文字数, char 区切り文字 ); fin.getline(line, MAX_LENGTH)とか。
ifstreamのコンストラクタ
ifstream ( ); explicit ifstream ( const char * filename, ios_base::openmode mode = ios_base::in ); ofstreamのコンストラクタも同様 ofstream ( ); explicit ofstream ( const char * filename, ios_base::openmode mode = ios_base::out );
なんか、コンソール上でファイル名を習得したいときは、
cout << "ファイル名入力(拡張子込み)で入力してください." << endl; string filename; cin >> filename; ifstream ifs(filename.c_str()); //でOK