-1

つまり、これです。標準入力から一連のテキストを読み取り、それを 1 つずつ文字型に読み取ったとします。これらの文字の 1 つが改行である場合、明らかに、この変数は改行に関する情報を保持できます。この文字を文字列ストリームにプッシュし、文字列ストリームの内容を文字列に出力するとどうなるでしょうか?

この新しい文字列は、改行文字に関するデータを保持していないようです。

文字列にこの情報を保持させる方法はありますか?

コードスニペット:

    stringstream ssChar;
    unsigned char aChar;
    string strChar;

    sourceFile >> noskipws >> aChar;
    ssChar << aChar;
    getline(ssChar, strChar);
    //ssChar.str("");
    //ssChar.seekg(0);
    cout << "Next char is: " << (int)aChar << endl;
    cout << "Length of char(from stringstream): " << strChar.length() << endl;

入力: 改行を含むファイル xxd sourceFile

0000000: 0a0a (実際には 2 つの改行) ..

出力: 次の文字: 10 (ASCII 改行) 文字の長さ: 0 (ただし、str は空です)

4

2 に答える 2

0

なぜあなたはそれをテストしないのですか?

    > cat temp.cc
    #include<iostream>

using namespace std;

int main()
{

string str="vijay\n";

cout << str <<"this is the next line"<<endl;

return 0;
}

    > ./a.out
    vijay
    this is the next line
    > 
于 2012-07-24T06:24:10.687 に答える
0

答えはイエスです。もちろん、文字列には渡された文字データが格納されます。空白や改行を消費しているコードにフォーマット操作がある可能性があります。

于 2012-07-24T04:41:00.440 に答える