fscanf用字符串和长

时间:2013-03-25 13:34:27

标签: c csv ansi scanf

我正在尝试解析另一个函数用这个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 :失败(ok)
  • file_start :0(ko)
  • file_period :0(ko)
  • file_size :0(ko)

我做错了什么?

1 个答案:

答案 0 :(得分:3)

"%[^;$]s" ==>替换字符串格式%[^;$]移除s,因为[]会替换s,因此不再需要s