C++ベース::文字ストリーム(stringstream)
3655 ワード
//
stringstream ss;
ss << "hello ";
ss << "world!";
std::cout << ss.str() << std::endl;
// stringstream ,operator<<
// str()
ss.str()
関数には2つのリロードバージョンがあり、1つのパラメータなし形式で、文字ストリームstringstream
のデータを文字列タイプに変換し、1つの文字列をタイプとするパラメータで、上書きstringstream
の既存のデータを使用します.//
ss.str("");
ss.clear() vs ss.str(“”)
文字ストリーム(stringstream)に対してクリアを実行する動作は
ss.str("")
ではなくss.clear()
ss.clear()
継承元ios
ストリームのエラー状態をクリアするために使用され、例えば、ストリームの状態がeofbit
(0,end of file)に設定され、呼び出されclear()
メソッドは、その状態をgoodbit
(no error)に設定する.1 std::cout << ss.rdstate() << std::endl;
// 0
ss.setstate(std::ios::eofbit);
std::cout << ss.rdstate() << std::endl;
// 1
ss.clear();
std::cout << ss.rdstate() << std::endl;
// 0
.str()メンバーメソッドの戻り値タイプ
C++のstringタイプ定義:
typedef basic_string<char, char_traits<char>, allocator<char> >
string;
ファイルストリームの
str()
メンバー関数を使用して、文字ストリームのデータをstring
タイプに変換し<<
または>>
演算子を使用して、文字列をストリームに書きます.std::stringstream ss;
ss << "hello " << 5 << " "<< 5.5;
std::cout << ss.str() << std::endl;
//
文字ストリームの機能
任意のデータ型の文字列形式の組合せ
ss.str(""); //
ss << "Attr" << i; //
std::string str = ss.str(); //
How do you clear a stringstream variable? ↩