strtok 使用了错误的分隔符(空格和",")
strtok is using wrong delimiter (space as well as ",")
有没有办法让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将空间解释为"",但我不知道如何忽略它。我尝试输入 inf.ignore(' '),但不起作用并给了我一些随机值。但是,如果我将文件更改为 123,San_Francisco,Los_Angeles然后程序工作。我怎么能忽略空格?
不要责怪strtok
,它的ifstream
在找到空格字符时停止提取。如果要读取整行,则应使用getline()
变体之一。
相关文章:
- 2D数组来自文本输入,中间有空格
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 当用户键入分隔符时,停止getline()输入
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- 如何在c++中使用system()来运行包含空格的python脚本
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- basic_string的前导/尾部不区分空格的特征
- 移除前面有空格的前2个字符串
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在 c++ 中使用 ',' 作为 getline 分隔符
- 使用空格分隔符从文本文件将对象读入数组
- 使用分隔符空格解析字符串,但字符串也包含空格
- strtok 使用了错误的分隔符(空格和",")
- 提升精神 - 修剪最后一个字符和分隔符之间的空格
- 使用空格分隔符从输入流中拆分字符串
- 使用空格作为boost::char_separator中的分隔符
- 使用sscanf从c++文件中读取空格分隔符
- 移动字符串中的单词,单词之间使用空格作为分隔符
- 为什么使用 ostream 运算符<<打印字符串时空格不充当分隔符?
- 使用多个空格 (>1) 作为分隔符,使用 C++ 或 linux 将一行分隔为列