cout:最后一个字符串覆盖第一个字符串

时间:2017-03-09 06:02:21

标签: c++ string cout

我想用c ++读取文件中的字符串。 输入字符串如:"文件:blacksburg.asc" 我需要在"之后读取字符串:" 我的部分代码如下:



 void mapWalk( string input, string output ){
        ifstream in(input.c_str());
        string line;
        string mapdata = "";
        getline(in,line);
        int pos = line.find(":");
        mapdata = line.substr(pos);
        cout<<"The string is"<< mapdata <<"&&" << endl;     
   }
&#13;
&#13;
&#13;

输出显示如下: &amp;&amp; e string是:blacksburg.asc

这是有线的!! 为什么&amp;&amp;是在字符串的开头,覆盖另一个?

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

mapdata末尾有一个回车符。所以你输出&#34;字符串是&#34;,然后是mapdata的内容,包括回车。然后在前一个文本的顶部输出&&,因为您返回了没有换行符的托架。

阅读getline的文档。它指定不删除行结尾。