質問
私たもので
std::stringstream m;
m.empty();
m.clear();
ものではない。
解決
すべての標準ライブラリの種類の会員機能 empty()
はクエリではなく、コマンドは、にあります。"を作成してください捨てコンテンツ".
の clear()
会員機能から継承され ios
めに使用されるエラー状態をクリア、ストリームの例場合はファイルのストリームがエラー状態を設定 eofbit
(ファイルの終わり、呼び出し clear()
のエラー状態に戻る goodbit
(エラー)。
清算の内容 stringstream
, 用:
m.str("");
が正しいものを使用:
m.str(std::string());
技術的により効率的でを回避するためメソッドを呼び出して、 std::string
引数に取るコンストラクタ const char*
.がコンパイラこれらの日できるのと同じコードになったにも関わらず何でもやり易い。
他のヒント
クリアすることができますエラー状態や空のstrignstreamのすべてを一つにライン
std::stringstream().swap(m); // swap m with a default constructed stringstream
これによって、効果的にリセットmデフォルトの建設状況
m.str("");
いるようです。
これは、最も確実な方法を問わず、コンパイラ:
m=std::stringstream();
いつもスコーピングす:
{
std::stringstream ss;
ss << "what";
}
{
std::stringstream ss;
ss << "the";
}
{
std::stringstream ss;
ss << "heck";
}
2セ
このた機会がほとんど無かったxcodeとdev-c++、あったかプログラムの形式をメニューの場合は実行を繰り返しの依頼ユーザの入力stringstreamる変数もok初めてのコードが実行がないのstringstreamのユーザーは同じコードです。その二つのコードを以下にそれが解消されstringstream変数の詳細を充填する前には、文字列変数となります。(2時間の試行錯誤を繰り返しgoogle検索),ちなみ使用し、各行の自分でいいですよね。
//clear the stringstream variable
sstm.str("");
sstm.clear();
//fill up the streamstream variable
sstm << "crap" << "morecrap";
この概念の問題です。
Stringstreamはストリームから、その反復子としておりません。出力stringstreamが必要flush()をを初期化され、その他の出力ストリームです。
これらのい捨てのデータstringstream gnu c++
m.str("");
m.str() = "";
m.str(std::string());
以下は空のstringstreamん:
m.str().clear();