用字符串打印出矢量

时间:2013-02-25 22:42:10

标签: c++ vector

我有以下代码。代码后跟一个示例输入文件。当我去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

2 个答案:

答案 0 :(得分:1)

operator>>将任何类型的空格解释为分隔符。如果您需要阅读整行,请使用getline()

答案 1 :(得分:0)

更改while循环,以便读取整行。

while (getline(in_stream, dummy))
{
    a.push_back(dummy);
    cout << a[i] << endl;
    i++;
}