ifstream读取CSV数据的问题

时间:2017-02-22 15:23:28

标签: c++ csv

非工作代码:

#include<iostream>
#include<fstream>
#include<string>
int main(){
int id; string name;char comma ; double money;
ifstream read("testfile.csv");
 while (read >> id >> comma>> name >> comma >> money)
 {cout << id <<comma<<name<<comma<<money<<  endl ;}
 read.close();
 _getch();
return 0;}

csv文件数据&amp;结构:

1,user1,999 2,user2,33 3,user3,337

但是,以下工作正常。为什么这样?

while (read >> id >>comma>>name) {cout << id<<comma<<name <<endl ;}

1 个答案:

答案 0 :(得分:3)

当您使用>>读取字符串时,它会读取空格分隔字符串。如果您阅读的文本中没有空格,则会一直读到该行的结尾(因为换行符是空格)。

因此,输入的“解析”会在一段时间后与文件中的内容不同步,并且在尝试读取其中一个数字时会导致错误。