编译没有报错但是运行这个功能时像一个空函数一样没有实现保存为文档的功能。
函数代码,结构体定义和程序运行测试如下
需要更多请留言(•̀⌄•́)
int main()
{
int input = 0;
//创建通讯录
struct contact con;
//初始化通讯录
InitContact(&con);
do
{
//菜单
menu();
printf("请选择:\n");
scanf("%d", &input);
switch (input)
{
case add:
Addcontact(&con);//添加
break;
case del:
DelContact(&con);//删除
break;
case search:
SearchContact(&con);//查找
break;
case modify:
ModifyContact(&con);//修改
break;
case show:
Show_contact(&con);//显示
break;
case sort:
Sort_contact(&con);//排序
break;
case exit:
printf("退出程序!\n");
break;
case 7:
writeExcel;//保存为excel表格
break;
default:
printf("输入有误!\n");
break;
}
} while (input);
return 0;
}
你关键代码没有贴出来,也就是你怎么用switch去根据输入判断,然后调用writeExcel函数的调用代码
最好你把完整代码贴一下
【以下回答由 GPT 生成】
问题的原因在于代码中的writeExcel
函数并没有被正确定义和调用,导致保存功能没有实际执行。为了解决这个问题,您可以按照以下步骤进行修改:
首先需要明确您希望将数据保存为什么样的文档格式,例如保存为文本文件(.txt)还是其他格式(例如Excel表格)。
如果您希望将数据保存为文本文件,可以使用C语言中的文件操作来实现。在保存之前,需要先将通讯录中的数据按照一定格式组织起来,例如每一条通讯录信息用一行表示,每个字段之间用逗号或制表符分隔。然后,打开一个文件(使用fopen
函数),将数据写入文件中(使用fprintf
函数),最后关闭文件(使用fclose
函数)。
下面是示例代码:
```c #include
void writeTextFile(const struct contact con) { FILE file = fopen("contacts.txt", "w"); // 打开文件以写入模式 if (file == NULL) { printf("无法打开文件!\n"); return; }
for (int i = 0; i < con->size; i++)
{
fprintf(file, "%s, %s, %s\n", con->people[i].name, con->people[i].phone, con->people[i].email);
}
fclose(file); // 关闭文件
printf("保存成功!\n");
} ```
在case 7
的情况下调用writeTextFile
函数,如下所示:
c case 7: writeTextFile(&con); // 保存为文本文件 break;
总结:根据您的描述,可以推测您想要实现的是将数据保存为文本文件的功能。以上是一个简单的示例代码,可以基于这个代码进行修改和扩展,以满足您的需求。希望能帮助您解决问题,如果有任何疑问,请随时提问。
【相关推荐】