2017-03-09 221 views
-2

我想使用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

它是如此的有线! 为什么& &是在字符串的开头,并覆盖其他?

有人有想法吗?

+0

你能给我们足够的代码来复制这个问题吗?读入的内容是什么? '线'是什么类型?等等。 –

+0

你有可执行的样本吗? –

回答

0

mapdata的末尾有一个回车符。所以你输出“The string is”,然后输入mapdata的内容,包括回车。然后在前面的文本的顶部输出&&,因为您没有换行符而返回了托架。

阅读文档getline。它指定行结束不会被删除。

相关问题