如果从char类型给出,字符串是否可以保留换行符?

时间:2012-07-24 04:35:32

标签: c++ string stl io std

我的意思是这个。假设我们从标准输入中读取了一堆文本,并逐一将其读入字符类型。如果其中一个字符是换行符,显然此变量可以保存有关新行的信息。如果我将此字符推入字符串流,然后将字符串流的内容输出到字符串?

,该怎么办?

看来这个新字符串不包含有关换行符的任何数据。

是否有字符串保留此信息?

代码段:

    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换行符) char的长度:0(str为空)

2 个答案:

答案 0 :(得分:0)

答案是肯定的。当然,字符串将存储传递给它的字符数据。您的代码中可能存在一些格式化操作,即吃空格或换行符。

答案 1 :(得分: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
    >