下面代码的主要思想是让我添加、删除数组的等部分,使其看起来或多或少像商店的数据库(这样做是因为我不知道如何使用指针等)。我几乎弄清楚了,但我有两个大问题: 第一个问题是,当我运行代码并选择案例 1 时,我收到“段错误(核心转储)”。我什至不知道该错误意味着什么,所以我不知道如何修复它。 第二个问题可能是我最大的问题,有人能告诉我如何将数组存储在文件中,这样当我再次运行程序时,数组不会为空,而是从文件中获取它们的元素,并在退出时保存在同一个文件中(这就是我使用数据库一词的原因)。
include stdio.h
include stdbool.hint main()
{ bool bExit = false;
int select, i, price[5], amount[5];
char *name[5];
do
{ printf("What would you like to do ?:\n"); printf("1) Add products \n"); printf("2) Delete products \n"); printf("3) Find product by name (shows position and price) \n"); printf("4) Find product by position (shows name and price) \n"); printf("6) Display all info of all products \n"); printf("7) Modify amount of existing product \n"); printf("8) Modify price of existing product \n"); printf("9 Exit \n"); scanf("%d", &select);
switch (select)
{
case 1:
{
for(i=1;i<=5;i++)
{
printf("Name: ");
scanf("%c\n", *name[i]);
printf("Price: ");
scanf("%d\n", price[i]);
printf("Amount: ");
scanf("%d\n", amount[i]);
}
break;
}
case 2:
...啦啦啦...
default:
{
printf("Good Bye \n");
bExit = true;
break;
}
最佳答案
您不需要对 char *name[5] 使用任何指针。请改用字符名称[5]。段错误可能来自于这个语句
scanf("%c\n", *name[i]);
对于第二个问题,创建一个文件并在需要读/写时打开它。类似的东西
File *fptr=fopen("database","w");
for(i=0;i<5;i++){
fprintf(fptr,"%s\n",name[i]);
}
看看这里的链接:http://www.programiz.com/c-programming/c-file-input-output
关于c - c中的"Database"(不是实际的数据库,只是一个简单的事情),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27305239/