cout:最后一个字符串覆盖第一个字符串
问题描述:
我想使用C++读取文件中的字符串。 输入字符串,如:“文件:blacksburg.asc” 我需要后读取字符串“:” 部分我的代码如下:cout:最后一个字符串覆盖第一个字符串
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;
}
的输出显示如下: & & e字符串是:blacksburg.asc
它是如此的有线! 为什么& &是在字符串的开头,并覆盖其他?
有人有想法吗?
答
在mapdata
的末尾有一个回车符。所以你输出“The string is”,然后输入mapdata
的内容,包括回车。然后在前面的文本的顶部输出&&
,因为您没有换行符而返回了托架。
阅读文档getline
。它指定行结束不会被删除。
你能给我们足够的代码来复制这个问题吗?读入的内容是什么? '线'是什么类型?等等。 –
你有可执行的样本吗? –