cout的奇怪问题

时间:2014-08-18 15:35:19

标签: c++

从文本文件中读取并将其存储到字符串中后,我尝试将此消息传递给另一个将其打印出来的函数。 这就是它的样子:

http://imgur.com/MCjfRdp

void insert (int id, string message){
    cout << "Inserting " << message << " at" << endl;

}

不知何故,字符串后面的消息会覆盖该消息。 但是一旦我删除了&#34;在&#34;在消息之后,它按预期工作。 http://imgur.com/JdHPPmi

 void insert (int id, string message){
    cout << "Inserting " << message << endl;

}

我不知何故怀疑问题来自stringstream,但我无法找到答案。 这是从文件中读取的代码

    vector <string> line;
fstream infile;
string readLine, tempLine, action, tempLine1;
int level, no;
infile.open(fileName.c_str(),ios::in);
int i = 0;

while (!infile.eof())
{
    getline (infile, readLine);
    line.push_back(readLine);
}
infile.close();
line.pop_back();
for (int i = 0; i < line.size();i++)
{
    stringstream ss (line.at(i));
    getline (ss, action, ' ');

    if (action == "init")
    {
        // some other work here
    }
    else if (action == "insert")
    {
        tempLine = line.at(i);
        ss >> no;

        stringstream iline(tempLine);
        getline (iline, tempLine1, ' ');
        getline (iline, tempLine1, ' ');
        getline (iline, tempLine1, '\n');
        Insert (no, tempLine1);

    }

由于我的文件有不同类型的操作,因此test.dat包含:

insert 0 THIS IS A TEST

编辑:我做的时候&gt; file.txt,就像这样。

Inserting THIS IS A TEST at Inserting THIS IS TEST NO 2 at

0 个答案:

没有答案