2014-09-21 1133 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