【发布时间】:2022-01-08 19:50:16
【问题描述】:
我正在尝试从以下格式的文件中读取:
12,6:23.4
我需要分别收集 12、6 和 23.4,但我似乎无法绕过逗号和冒号。
这是我的尝试:
int x = fscanf(fp, "%d %[^,] %d %s %f", &int_var, comma_buffer, &int_var_2, colon_buffer, &float_var);
但我得到如下垃圾输出:
int_var_1: 12
Comma_buffer: ��#�
int_var_2: 0.000000
colon buffer: ,
float_var: 0.000000
【问题讨论】:
-
试试
"%d ,%d :%f"。 -
老实说,这比我预期的要简单得多。希望我的讲师指出这一点,谢谢
-
int_var_2: 0.000000发生是因为,从未被读取,扫描停止并且代码在打印之前没有检查返回值。 -
是的,抱歉,逗号实际上是我原始代码输出中遗留下来的东西。