2013-03-25 64 views
3

我試圖解析另一個功能與此fprintf中寫了一個文件:的fscanf用繩子和長

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)

我在做什麼錯?

+0

什麼返回值?這會告訴你它做了多少轉換,如果它不是4,那麼你說這些字段被解析爲0,它們根本沒有被解析(不會被'fscanf()'改變)。 – unwind 2013-03-25 13:40:35

+0

不知道確切的返回值。但是它大於0,因爲我測試scanf的錯誤來檢查它的返回值。 – 2013-03-25 14:06:25

回答

3

%[^;$] ==>替換字符串格式"%[^;$]s"刪除s因爲[]更換s因此無需任何更多的s

+0

完美!完全解決。非常感謝 – 2013-03-25 14:05:14

+0

不客氣 – MOHAMED 2013-03-25 14:52:16