c ++ - std :: getline读取不存在的字符

时间:2015-11-08 00:58:25

标签: c++ file getline

我目前正在使用Visual Studio 2013。

我有一个基本的txt文件,每行都有记录,每条记录都用半色分隔。例如:

A;James;Jones;N;2;deposit;withdraw
P
A;George;clooney;P;3;deposit;credit;withdraw
P
V
P
A;Charlie;Chaplin;P;2;withdraw;credit
P
V
P
R;Ali;Aksu;N
P
s;Ali;Aksu
E

我使用的是我在网上找到的简单代码,只是将其打印到屏幕上:

#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include <ctype.h>
#include <string>
#include <string.h>
#include <fstream>
#include <sstream>

using namespace std;

int main(){
ifstream    file("input_file.txt");
string      line;
if (file)
{
    string token;
    stringstream iss;
    while (getline(file, line))
    {
        iss << line;
        while (getline(iss, token, ';'))
        {
            cout << token << endl;
        }
        iss.clear();
    }
}
system("PAUSE");
return 0;
}

但是当我运行程序时,它会在输出的开头添加一些不存在的字符,这是在使用g ++在SSH上编译时输出的第一行:

  

甲

这是什么原因,我试图在更大的项目中使用std :: getline,但这会影响所有的程序结构。解决方案是什么?

非常感谢。

0 个答案:

没有答案