Я использую dev C++. Я делаю эту простую функцию calles void quan()
. Это включает в себя обработку файлов, чтение и добавление. Проблема в том, что когда я что-то ввожу, он падает. Я не знаю почему, и я думаю, что это из-за fscanf
?чтение файла (fscanf) в C
void quan()
{
FILE *fp,*fp1;
int q;
char name[20];
fp=fopen("inv.txt","r");
fp1=fopen("temp.txt","a");
if(fp==NULL)
{
printf("quan error");
}
else
{
printf("enter product name: ");
gets(name);
while(fscanf(fp,"%s %d %f %s",s.prod,s.quant,s.price,s.day)==4)
{
if(strcmp(s.prod,name)!=0)
{
fprintf(fp1,"%s %d %.2f %s\n",s.prod,s.quant,s.price,s.day);
}
else
{
printf("enter quantity: ");
scanf("%d",&q);
s.quant=s.quant+q;
fprintf(fp1,"%s %d %.2f %s\n",s.prod,s.quant,s.price,s.day);
printf("\nsuccess");
}
}
}
fclose(fp);
fclose(fp1);
remove("inv.txt");
rename("temp.txt","inv.txt");
}
это в моем inv.txt файл
apple 100 20.00 01/01/2015
orange 100 10.00 01/01/2015
banana 50 15.00 01/01/2015
grapes 15 10.00 01/01/2015
fan 100 5.00 01/01/2015
Вы проверяете, является ли 'fp' NULL, но нет, если' fp1' является NULL – Zaffy
. Я думаю, что уже существует тысяча ответов на такие проблемы, разве вы ничего не нашли? – Ulterior
Возможный дубликат [Самый простой способ прочитать эту строку текста в структуре?] (Http://stackoverflow.com/questions/3878327/easiest-way-to-read-this-line-of-text-into-a -struct) – Ulterior