C语言输入n个用户的名字,将用户名字存入user.txt文件中,最后从user.txt文件中读出所有用户并输出显示。(粘贴源代码到答题处)提示:
用户名不超过20个字符;
对文件进行存取操作时,建议使用fprintf和fscanf函数。
(标签-C语言|关键词-user)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
当然可以,以下是一个使用C语言实现的示例程序,该程序会提示用户输入n个名字并将它们写入到user.txt文件中,然后从该文件读取并输出所有用户名:
#include <stdio.h> #include <string.h> #define MAX_NAME_LENGTH 20 // 定义用户名的最大长度 int main() { FILE *filePtr; char name[MAX_NAME_LENGTH + 1]; int n, i; // 获取用户要输入的名字数量 printf("请输入要输入的名字数量:"); scanf("%d", &n); // 打开或创建文本文件以写入 filePtr = fopen("user.txt", "w"); if (filePtr == NULL) { printf("无法打开或创建文件user.txt\n"); return 1; } // 循环输入并写入n个名字 for (i = 0; i < n; i++) { printf("请输入第%d个名字(不超过20个字符): ", i + 1); fgets(name, MAX_NAME_LENGTH + 1, stdin); // 使用fgets处理可能存在的换行符 name[strcspn(name, "\n")] = '\0'; // 去掉末尾的换行符 fprintf(filePtr, "%s\n", name); // 写入名字,并在每个名字后加换行符以便于后续读取 } fclose(filePtr); // 关闭文件 // 打开文件进行读取 filePtr = fopen("user.txt", "r"); if (filePtr == NULL) { printf("无法打开文件user.txt进行读取\n"); return 1; } printf("读取并显示所有用户名:\n"); while (fscanf(filePtr, "%s", name) == 1) { // 读取一行作为用户名 printf("%s\n", name); } fclose(filePtr); // 关闭文件 return 0; }这个程序首先获取用户想要输入的名字数量,接着循环让用户输入名字并将它们写入
user.txt文件。最后,它重新打开文件并逐行读取和显示所有已存储的名字。注意,在读取时,我们使用了fscanf函数来读取字符串,并通过\n分隔每个名字。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录