
学习C语言编程的最佳途径之一就是动手实践。本文将带您逐步完成一个我最近完成的项目:一个简单的电话簿应用程序。此应用演示了C语言中的文件处理和基本数据管理,允许您添加、查看和删除联系人。
以下是完整代码:
<code class="c">#include <stdio.h>
#include <string.h>
// 函数声明
void addcontact(char name[], char number[]);
void viewcontacts();
void deletecontact(char name[]);
int main() {
int choice;
char name[20];
char number[20];
printf("-- 欢迎使用您的电话簿! -- \n");
do {
// 显示菜单
printf("\n您想执行什么操作?\n");
printf("1. 创建新联系人\t 2. 查看电话簿\t 3. 删除联系人\t 4. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
// 添加新联系人
printf("很好,让我们创建一个新联系人:\n");
printf("请输入联系人的姓名:\n");
scanf("%s", name);
printf("现在输入电话号码:\n");
scanf("%s", number);
addcontact(name, number);
break;
case 2:
// 查看电话簿
printf("这是您的电话簿:\n");
viewcontacts();
break;
case 3:
// 删除联系人
printf("请输入要删除的联系人的姓名:\n");
scanf("%s", name);
deletecontact(name);
break;
}
} while (choice != 4); // 循环直到用户选择“退出”
return 0;
}
// 向电话簿添加联系人的函数
void addcontact(char name[], char number[]) {
FILE *pfile;
pfile = fopen("phonebook.txt", "a");
if (pfile == NULL) {
printf("打开电话簿失败。");
return;
}
fprintf(pfile, "姓名: %s \t 电话: %s\n", name, number);
printf("联系人已创建!\n");
fclose(pfile);
}
// 查看电话簿中所有联系人的函数
void viewcontacts() {
char filecontent[200];
FILE *pfile;
pfile = fopen("phonebook.txt", "r");
while (fgets(filecontent, sizeof(filecontent), pfile)) {
printf("\n%s", filecontent);
}
fclose(pfile);
}
// 从电话簿中删除联系人的函数
void deletecontact(char name[]) {
FILE *pfile, *ptrash;
char line[200], contactname[20], contactnumber[20];
pfile = fopen("phonebook.txt", "r");
ptrash = fopen("trash.txt", "w");
if (pfile == NULL || ptrash == NULL) {
printf("打开文件失败。");
return;
}
while (fgets(line, sizeof(line), pfile)) {
sscanf(line, "姓名: %s \t 电话: %s\n", contactname, contactnumber);
if (strcmp(name, contactname) != 0) {
fputs(line, ptrash);
}
}
fclose(pfile);
fclose(ptrash);
// 将旧电话簿替换为更新后的版本
remove("phonebook.txt");
rename("trash.txt", "phonebook.txt");
printf("联系人已删除。");
}</code>该程序实现了三个核心功能:
phonebook.txt 的文件中。phonebook.txt 文件中存储的所有联系人信息。通过这个练习,我巩固了以下C语言知识:
fopen、fclose 等文件操作函数,并处理文件打开失败的情况。strcmp 和 sscanf 等函数进行字符串比较和解析。.c 文件中(例如 phonebook.c),并使用C编译器(如 GCC)编译:<code class="bash">gcc -o phonebook phonebook.c</code>
<code class="bash">./phonebook</code>
phonebook.txt 文件验证数据是否正确存储。这个程序是一个良好的开端,未来可以考虑以下改进:
fgets 代替 scanf)。这个练习帮助我深入理解了C语言的文件处理和基本数据管理。这是一个简单但实用的程序,可以作为更复杂项目的基础。如果您是C语言初学者,强烈推荐您尝试一下!这是一个有趣且有益的学习过程。
以上就是练习 C:构建一个简单的电话簿应用程序的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号