Тема: Допоможіть з Файлами на С
У мене завдання сформувати файл, який містить інформацію про 10 автолюбителів: прізвище, марка автомобіля, колір, номер. Використовуючи ці дані, надати інформацію про автолюбителів, які мають “Жигулі” білого кольору і їх номер починається з 45.
Я написав код, але він видає помилки, допоможіть виправити.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
int n;
int pr;
int m;
int k;
int no;
FILE *A;
A=fopen("cars.txt","w");
for (int i=0; i<10; i++){
printf("Введіть кількість автолюбителів: ");
scanf("%i",&n);
printf("Прізвище: ");
scanf("%i",&pr);
printf("Марка: ");
scanf("%i",&m);
printf("Колір: ");
scanf("%i",&k);
printf("Номер: ");
scanf("%i",&no);
printf("%i\n%i\n%i\n%i\n",pr,m,k,no);
fprintf(A,"%i\n%i\n%i\n%i\n",pr,m,k,no);
}
fclose(A);
A=fopen("car.txt","r+");
printf("Білі жигулі з номером, який починається на 45 :\n");
while (!feof(A))
{
scanf(A,"%i\n%i\n%i\n%i\n",pr,m,k,no);
if (m="жигулі" &&
k="білий" &&
no(1,2)="45"){
printf("%i%i%i%i", pr, m, k, no);
}
fclose(A);
return 0;
}
}
Це видає компілятор
main.c:41:16: warning: passing argument 1 of ‘scanf’ from incompatible pointer type [-Wincompatible-pointer-types]
41 | scanf(A,"%i\n%i\n%i\n%i\n",pr,m,k,no);
| ^
| |
| FILE * {aka struct _IO_FILE *}
In file included from main.c:3:
/usr/include/stdio.h:397:42: note: expected ‘const char * restrict’ but argument is of type ‘FILE *’ {aka ‘struct _IO_FILE *’}
397 | extern int scanf (const char *__restrict __format, ...) __wur;
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
main.c:44:14: error: called object ‘no’ is not a function or function pointer
44 | no(1,2)="45"){
| ^~
main.c:13:9: note: declared here
13 | int no;
| ^~
Я думаю, що номер потрібно оголосити як string, якщо це так, то як це зробити?