[C] 简单的C语言文本编辑器示例 →→→→→进入此内容的聊天室

来自 Scorching Eider, 2024-03-06, 写在 C, 查看 11 次.
URL http://www.code666.cn/view/1ae6dfdc
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define MAX_LENGTH 1000
  6.  
  7. int main() {
  8.     char filename[50];
  9.     char text[MAX_LENGTH];
  10.     char command[20];
  11.     FILE *file;
  12.     int length = 0;
  13.  
  14.     printf("请输入文件名:");
  15.     scanf("%s", filename);
  16.  
  17.     file = fopen(filename, "r");
  18.     if (file == NULL) {
  19.         file = fopen(filename, "w");
  20.         fclose(file);
  21.     }
  22.  
  23.     while (1) {
  24.         printf("\n请输入命令(输入'quit'退出):");
  25.         scanf("%s", command);
  26.  
  27.         if (strcmp(command, "quit") == 0) {
  28.             break;
  29.         }
  30.  
  31.         if (strcmp(command, "open") == 0) {
  32.             printf("请输入要打开的文件名:");
  33.             scanf("%s", filename);
  34.             file = fopen(filename, "r");
  35.             if (file == NULL) {
  36.                 printf("文件不存在!\n");
  37.                 continue;
  38.             }
  39.             fseek(file, 0, SEEK_END);
  40.             length = ftell(file);
  41.             fseek(file, 0, SEEK_SET);
  42.             fread(text, sizeof(char), length, file);
  43.             text[length] = '\0';
  44.             fclose(file);
  45.             printf("文件内容:\n%s\n", text);
  46.         }
  47.  
  48.         if (strcmp(command, "save") == 0) {
  49.             printf("请输入要保存的文件名:");
  50.             scanf("%s", filename);
  51.             file = fopen(filename, "w");
  52.             if (file == NULL) {
  53.                 printf("无法保存文件!\n");
  54.                 continue;
  55.             }
  56.             fprintf(file, "%s", text);
  57.             fclose(file);
  58.             printf("文件保存成功!\n");
  59.         }
  60.  
  61.         if (strcmp(command, "edit") == 0) {
  62.             printf("请输入要编辑的内容:");
  63.             scanf(" %[^\n]s", text);
  64.             length = strlen(text);
  65.             if (length > MAX_LENGTH - 1) {
  66.                 printf("输入内容过长!\n");
  67.                 continue;
  68.             }
  69.             text[length] = '\0';
  70.             printf("编辑后的内容:\n%s\n", text);
  71.         }
  72.     }
  73.  
  74.     return 0;
  75. }
  76. 这个示例程序实现了一个简单的文本编辑器,支持打开文件、保存文件和编辑文本。你可以根据自己的需求进一步完善和扩展这个程序,例如添加复制、粘贴、撤销、重做等功能。
  77.  
  78. 请注意,这只是一个基本框架,实际的文本编辑器需要更多的代码和逻辑来处理各种情况。如果你有兴趣开发一个完整的文本编辑器,建议参考现有的开源文本编辑器项目,学习它们的实现方式和技巧。

回复 "简单的C语言文本编辑器示例"

这儿你可以回复上面这条便签

captcha