質問

私たもので

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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top