gpt4 book ai didi

c - 为什么我在 printf ("ID | Name | Qty. | Price\n\n"); 之后出现段错误?

转载 作者:行者123 更新时间:2023-11-30 21:09:03 25 4
gpt4 key购买 nike

    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 指针取消引用上,这可能会发生这里。您可以做的几件事:

  1. fopen之后,执行:

    if (!filep) {
    perror("fopen");
    exit(1);
    }
  2. 在调试打印后添加换行符,并使用 fflush

关于c - 为什么我在 printf ("ID | Name | Qty. | Price\n\n"); 之后出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com