3

別の関数がこの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)

私は何が間違っているのですか?

4

1 に答える 1

3

文字列形式"%[^;$]s"を次のように置き換えます%[^;$]==>を削除します。s[]ss

于 2013-03-25T13:39:26.017 に答える