字符串不使用std :: cout打印

时间:2014-12-16 20:48:42

标签: c++

当尝试打印readdata字符串的内容时,结果不符合预期,但是如果我单独打印出'line'的内容,则会打印出正确的结果:

std::string line;
std::string readdata;
std::ifstream file(filename);
if (file.is_open()) 
{
    for (int i=0;std::getline(file,line) && i<10;i++)
    {
        std::cout<<line<<std::endl;    //Prints correct result for each instance.
        readdata.append(line); 
        if (i!=9)
        {
            readdata.append(" ");
        }

    }
    std::cout<<readdata<<std::endl;    //Prints garbled result.
    file.close();   
}

正在读取的文本文件包含以下数据:

#+/084&"
#3*#%#+
8%203:
,1$&
!-*%
.#7&33&
#*#71%
&-&641'2
#))85
9&330*

'line'的打印打印出来,但是当打印readdata时,结果为:

9&330*'2

2 个答案:

答案 0 :(得分:8)

我认为你在每一行的末尾都有一个'\r'

答案 1 :(得分:1)

    readdata.append(line.substr(0, line.find("\r")));