【发布时间】:2013-03-25 13:34:27
【问题描述】:
我正在尝试解析另一个函数使用此 fprintf 编写的文件:
fprintf(file, "DS;%s;%ld;%ld;%u\n", ds->name, ds->start, ds->period, ds->size)
我正在使用这个 fscanf:
fscanf(file, "DS;%[^;$]s;%ld;%ld;%u", file_name, &file_start, &file_period, &file_size)
file_name 读取没有问题。但 file_start、file_period 和 file_size 始终为 0,即使不是预期的。
例如,字符串:
DS;failures;1363978800;600;144
解析如下:
- file_name:失败(正常)
- file_start: 0 (ko)
- file_period:0 (ko)
- file_size:0 (ko)
我做错了什么?
【问题讨论】:
-
返回值是多少?这将告诉您它进行了多少次转换,如果不是 4,那么您说字段被解析为 0 并不完全正确,它们根本没有被解析(
fscanf()没有改变)。 -
不知道确切的返回值。但它大于 0,因为我测试了 scanf 以检查其返回的错误。