2014-09-21 1130 views
1

我必須使用fscanf函數(我不能使用任何其他函數,如strtok_s解析該行)來讀取csv文件,而im有以下問題。在C中使用fscanf讀取csv文件

下面是代碼:

fp1 = fopen (argv [1],"r"); 

var = fscanf (fp1,"%d,%d,%[^,]s,%[^,]s",&aux.points,%aux.titles,aux.name,aux.nation); 

我想打印在屏幕的每個參數。整數和第一個字符串(名稱)沒有問題,但是下一個字符串(國家)中沒有任何內容存儲。

我假設第一個%[^,]s正在停止整個fscanf函數的執行,所以下一個字符串永遠不會被讀取。任何想法?我嘗試了一切,但這只是不工作。

+0

[將CSV文件中的值讀入變量]可能出現重複(http://stackoverflow.com/questions/18737117/reading-values-from-csv-file-into-variables)。具體來說,請參閱Unwind的答案。 – jww 2014-09-22 00:09:55

+0

對不起,我查了一下這個帖子,但是用了ppeterka的回答(這是不正確的),並且忽略了放鬆(這是正確的)的答案,認爲它們都是一樣的。謝謝! – cventu 2014-09-22 00:19:03

回答

1

嘗試以此爲字符串: 「%d,%d,%[^],%[^,]」

我消除了 「S」,因爲[...]充當符。

認爲這是一個超級s。

+0

它的工作!非常感謝! – cventu 2014-09-22 00:15:56