#include <stdio.h> #include <stdlib.h> #include <string.h>
// 定义最大行长度和缓冲区大小 #define MAX_LINE_LENGTH 1024 #define BUFFER_SIZE 10240
// 读取文件内容并显示 void readFile(char *filename) { FILE *file = fopen(filename, "r"); if (file == NULL) { printf("无法打开文件 %s\n", filename); return; }
char line[MAX_LINE_LENGTH];
while (fgets(line, MAX_LINE_LENGTH, file)!= NULL) {
printf("%s", line);
}
fclose(file);
}
// 输入内容并保存到文件 void writeFile(char *filename) { FILE *file = fopen(filename, "w"); if (file == NULL) { printf("无法创建或打开文件 %s 进行写入\n", filename); return; }
printf("输入要保存的内容,输入'q'结束输入:\n");
char line[MAX_LINE_LENGTH];
while (1) {
printf("> ");
fgets(line, MAX_LINE_LENGTH, stdin);
line[strcspn(line, "\n")] = '\0'; // 去除换行符
if (strcmp(line, "q") == 0) {
break;
}
fprintf(file, "%s\n", line);
}
fclose(file);
}
int main() { int choice; char filename[100];
do {
printf("1. 读取文件\n");
printf("2. 输入并保存到文件\n");
printf("3. 继续编辑\n");
printf("4. 退出\n");
printf("请选择操作: ");
scanf("%d", &choice);
printf("请输入文件名: ");
scanf("%s", filename);
switch (choice) {
case 1:
readFile(filename);
break;
case 2:
writeFile(filename);
break;
case 3:
// 继续编辑的逻辑
printf("继续编辑\n");
break;
case 4:
printf("退出程序\n");
return 0;
default:
printf("无效的选择\n");
break;
}
} while (1);
return 0;
}