つまり、これです。標準入力から一連のテキストを読み取り、それを 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 は空です)