Я пишу программу, и у меня проблемы с совместным использованием scanf и fopen.
Судя по тому, что я могу сказать, мои ошибочные строки выглядят так:
FiLE * DataFile
DataFile = fopen("StcWx.txt","r");
scanf(DataFile, "%i %i %i %.2f %i %i", &Year, &Month, &Day, &Precip, &High, &Low);
В файле, из которого он открывается, есть список данных о погоде, который выглядит следующим образом:
1944 4 12 0 58 24
1944 4 13 0.4 58 29
1944 4 14 0.54 42 29
1944 4 15 0 43 27
(Эти пробелы - вкладки)
Отображаемая ошибка: «[Предупреждение] передача аргумента 1 из` scanf 'из несовместимого типа указателя ».
Может кто-нибудь помочь мне?





Вы используете неправильную функцию. Вы должны использовать fscanf.
Ваш код выглядит так, как будто он должен использовать fscanf, а не scanf.
Я настоятельно рекомендую использовать fgets и sscanf вместо прямого вызова fscanf.
Fscanf может выйти из строя таким образом, что оставит сомнения, где находится указатель вашего файла. Использование fgets для получения целых строк и sscanf для сканирования строк означает, что вы всегда знаете состояние указателя файла, и очень легко выполнить резервное копирование до начала строки (строка все еще находится в памяти).
... и atoi () для 4-го параметра
Как насчет:
freopen ("StcWx.txt","r",stdin);
scanf("%i %i %i %.2f %i %i", &Year, &Month, &Day, &Precip, &High, &Low);
Вам нужно рассказать немного подробнее. Например, какие бывают типы года, месяца, дня, осадков, максимума и минимума?