修改此程序段,使输入文件名时不需要加.txt后缀且不必再在输入文件名前输入空格:void write_file(FILE *fp, char *fname) { char ch; // 获取用户输入的文件名 printf("\t请输入编辑的文件名:\n\t"); scanf("%s", fname); // 直接读取字符串,不需要再输入回车键 // 读取字符串 fgets(fname, MAX_LEN, stdin); fgets(fname, MAX_LEN, stdin); char *pos; // 查找'\n'字符 if ((pos = strchr(fname, '\n')) != NULL) // 将'\n'替换为'\0' *pos = '\0'; // 打开文件并判断是否打开成功 if ((fp = fopen(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-30 08:37:37 浏览: 66
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);
}
阅读全文