我有以下代码。代码后跟一个示例输入文件。当我去cout数组时它就像这样:
输出:
Joe
Browns
93
Samantha
Roberts
45
为什么字符串只读到白色空格然后继续?我以为字符串接受白空间?谢谢。
代码:
ifstream in_stream;
in_stream.open("in.dat");
if(in_stream.fail())
{
cout<< "Input file opening failed. \n";
exit(1);
}
vector <string> a;
int i = 0;
string dummy;
while(in_stream>>dummy)
{
a.push_back(dummy);
cout<<a[i]<<endl;
i++;
}
in_stream.close( );
示例输入文件:
Joe Browns
93
Samantha Roberts
45
答案 0 :(得分:1)
operator>>
将任何类型的空格解释为分隔符。如果您需要阅读整行,请使用getline()
。
答案 1 :(得分:0)
更改while循环,以便读取整行。
while (getline(in_stream, dummy))
{
a.push_back(dummy);
cout << a[i] << endl;
i++;
}