非工作代码:
#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 ;}
答案 0 :(得分:3)
当您使用>>
读取字符串时,它会读取空格分隔字符串。如果您阅读的文本中没有空格,则会一直读到该行的结尾(因为换行符是空格)。
因此,输入的“解析”会在一段时间后与文件中的内容不同步,并且在尝试读取其中一个数字时会导致错误。