有没有办法让strtok()不将空格解释为分隔符? 我正在阅读.csv文件,我的代码有:
ifstream inf("file.csv");
char *n, *a, *b;
char n1[80], a1[80], b1[80], temp[80];
inf >> temp;
n = strtok(temp, ",");
strcpy(n1, n);
a = strtok(NULL, ",");
strcpy(a1, a);
b = strtok(NULL, ",");
strcpy(b1, b);
cout << a1 << " " << b1 << endl;
文件内容:
123,San Francisco, Los Angeles
我认为strtok将空间解释为'\ n',但我不知道如何忽略它。 我尝试输入inf.ignore('')但不起作用并给我一些随机值。但是,如果我将文件更改为123,San_Francisco,Los_Angeles 然后程序工作。 我怎么能忽略空格?
答案 0 :(得分:2)
不要责怪strtok
,ifstream
在找到空白字符时停止提取。如果要读取整行,则应使用getline()
变体之一。