Я использую fscanf
для чтения значений int
из файла. Он работает правильно, но, как я это сделал, компилятор дает несколько предупреждений.Как исправить предупреждения, появившиеся при использовании fscanf()?
Источник:
FILE *fp = NULL;
fp = fopen(argv[1],"r");
int num;
while(fscanf(fp,"%d",&num) != EOF) // This is the line 46
printf("%d ",num);
Предупреждения:
passing argument 1 of ‘fscanf’ from incompatible pointer type
format not a string literal and no format arguments [-Wformat-security]
passing argument 2 of ‘fscanf’ from incompatible pointer type
Line breakpoint: main.c [line: 46]
Что я делаю неправильно?
redefine prototype of fscanf, фактический код отличается. Например, fscanf ("% d", & num) '. (до сохранения?) – BLUEPIXY
Обязательно '#include' перед этим кодом. –
chux
Незначительный: используйте 'while (fscanf (fp,"% d ", & num) == 1)' а не 'while (fscanf (fp,"% d ", & num)! = EOF)', чтобы избежать проблем, когда файл а не конец, но имеет неконвертируемый текст. – chux