void displayAllProduct()
{
FILE *filep;
struct Product a;
int id, found=0;
system("clear");
filep=fopen("fileproduct.txt","w+");
printf("===========================================================================================\n");
printf("\t\t Product Details\n\n");
printf("===========================================================================================\n");
printf("ID | Name | Qty. | Price\n\n");
while(1) //infinite loop
{
printf("182");
fread(&a,sizeof(a),1,filep);
printf("184");
if(feof(filep))
{
break; //done
}
printf("%d\t %s\t %d\t %d\n",a.id, a.name, a.qty, a.price);
}
printf("===========================================================================================\n");
fclose(filep);
}
我目前正在尝试为我的 C 编程类(class)制作一个购物车,但在尝试查看我的库存时不断出现段错误。以上是我展示产品的功能。
最佳答案
您没有验证fopen
的返回值,这可能
由于权限等原因失败,出现段错误
在 NULL 指针取消引用上,这可能会发生
这里。您可以做的几件事:
在
fopen
之后,执行:if (!filep) { perror("fopen"); exit(1); }
在调试打印后添加换行符,并使用
fflush
。
关于c - 为什么我在 printf ("ID | Name | Qty. | Price\n\n"); 之后出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966591/