2014-09-21 5 views
1

Мне нужно прочитать файл csv с помощью функции fscanf (я могу использовать любую другую функцию, например strtok_s, для анализа строки) и имейте следующую проблему.Прочтите файл csv с помощью fscanf в C

Вот код:

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

+0

Да, извините, я проверил этот пост, но использовал ответ ppeterka (что неверно) и проигнорировал ответ на разматывание (что правильно), думая, что оба они были одинаковыми. Благодаря! – cventu

ответ

1

Попробуйте это как строка: "% D% D,% [^,],% [^,]"

я устранил "S", потому что [...] выступает в качестве спецификатора ,

Подумайте о [...] как о супер.

+0

Это сработало! Большое большое спасибо! – cventu