修改此程序并添加中文注释,要求使得写入后屏幕上输出写入后整个文件的现有内容:// 写入文件函数 void write_file(FILE *fp, char *fname) { char ch; // 用于存放用户输入的每个字符 char new_fname[MAX_LEN]; // 存放用户输入的文件名,包含后缀名 printf("\t请输入编辑的文件名:\n\t"); // 提示用户输入文件名 scanf("%s", new_fname); // 读取用户输入的文件名 // 判断用户输入的文件名是否包含了文件后缀名 if (!strstr(new_fname, ".txt")) { strcat(new_fname, ".txt"); // 如果没有,就添加上".txt" } if ((fp = fopen(new_fname, "w")) == NULL) { // 打开文件,判断是否打开成功 printf("\t不能打开文件!\n"); exit(0); } printf("\t请输入内容(以#号键结束):\n\t"); // 提示用户输入文件内容 ch = getchar(); // 读取用户输入的第一个字符 while (ch != '#') { // 当用户输入的字符不为#时,不断循环 fputc(ch, fp); // 将字符写入文件 ch = getchar(); // 继续读取下一个字符 } printf("\n\n"); // 输出两行空行 getchar(); // 读取回车符 fclose(fp); // 关闭文件 }
时间: 2024-03-26 14:37:51 浏览: 60
// 写入文件函数
void write_file(FILE *fp, char *fname) {
char ch; // 用于存放用户输入的每个字符
char new_fname[MAX_LEN]; // 存放用户输入的文件名,包含后缀名
printf("\t请输入编辑的文件名:\n\t"); // 提示用户输入文件名
scanf("%s", new_fname); // 读取用户输入的文件名
// 判断用户输入的文件名是否包含了文件后缀名
if (!strstr(new_fname, ".txt")) {
strcat(new_fname, ".txt"); // 如果没有,就添加上".txt"
}
if ((fp = fopen(new_fname, "w")) == NULL) { // 打开文件,判断是否打开成功
printf("\t不能打开文件!\n");
exit(0);
}
printf("\t请输入内容(以#号键结束):\n\t"); // 提示用户输入文件内容
ch = getchar(); // 读取用户输入的第一个字符
while (ch != '#') { // 当用户输入的字符不为#时,不断循环
fputc(ch, fp); // 将字符写入文件
ch = getchar(); // 继续读取下一个字符
}
printf("\n\n"); // 输出两行空行
getchar(); // 读取回车符
fclose(fp); // 关闭文件
// 以下为新增内容,输出写入后整个文件的现有内容
if ((fp = fopen(new_fname, "r")) == NULL) { // 重新打开文件,以读取文件内容
printf("\t不能打开文件!\n");
exit(0);
}
printf("\t文件内容为:\n\t");
ch = fgetc(fp); // 读取文件内容的第一个字符
while (ch != EOF) { // 当读取到文件结尾时,停止循环
putchar(ch); // 输出文件内容
ch = fgetc(fp); // 继续读取下一个字符
}
fclose(fp); // 关闭文件
}
阅读全文