0

有没有办法让 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,那么程序就可以工作。我怎么能忽略空格?

4

1 回答 1

2

不要责怪strtok,它ifstream会在找到空白字符时停止提取。getline()如果要阅读整行,则应使用其中一种变体。

于 2012-06-03T23:47:39.530 回答