C语言文本编辑器,要求具有编辑文本,保存和打开指定位置的文本文件的功能
时间: 2024-03-19 22:44:05 浏览: 16
以下是一个简单的C语言文本编辑器的代码实现,包括编辑文本,保存和打开指定位置的文本文件的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LENGTH 1000
void edit(char *filename);
void save(char *filename, char *buffer);
void open(char *filename);
int main()
{
int choice;
char filename[100];
while (1)
{
printf("\n1. Create a new file\n2. Open an existing file\n3. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Enter the name of the file: ");
scanf("%s", filename);
edit(filename);
break;
case 2:
printf("Enter the name of the file: ");
scanf("%s", filename);
open(filename);
break;
case 3:
exit(0);
break;
default:
printf("Invalid choice!\n");
break;
}
}
return 0;
}
void edit(char *filename)
{
char buffer[MAX_LENGTH];
FILE *fp = fopen(filename, "w+");
if (fp == NULL)
{
printf("Error creating file!\n");
exit(1);
}
else
{
printf("File created successfully!\n");
}
while (1)
{
printf("\n1. Write to file\n2. Read from file\n3. Save file\n4. Exit\n");
printf("Enter your choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1:
printf("Enter text to write: ");
fflush(stdin);
fgets(buffer, MAX_LENGTH, stdin);
fprintf(fp, "%s", buffer);
break;
case 2:
printf("File contents:\n");
while (fgets(buffer, MAX_LENGTH, fp) != NULL)
{
printf("%s", buffer);
}
break;
case 3:
save(filename, buffer);
break;
case 4:
fclose(fp);
return;
break;
default:
printf("Invalid choice!\n");
break;
}
}
}
void save(char *filename, char *buffer)
{
FILE *fp = fopen(filename, "w");
if (fp == NULL)
{
printf("Error saving file!\n");
exit(1);
}
else
{
printf("File saved successfully!\n");
}
fprintf(fp, "%s", buffer);
fclose(fp);
}
void open(char *filename)
{
char buffer[MAX_LENGTH];
FILE *fp = fopen(filename, "r");
if (fp == NULL)
{
printf("Error opening file!\n");
exit(1);
}
else
{
printf("File opened successfully!\n");
}
while (fgets(buffer, MAX_LENGTH, fp) != NULL)
{
printf("%s", buffer);
}
fclose(fp);
}
```
在这个程序中,用户可以选择创建一个新的文件或打开一个现有的文件。如果选择创建一个新文件,则程序将提示用户输入文件名,并创建一个新的空文件。如果选择打开现有的文件,则程序将提示用户输入文件名,并打开该文件以供读取。用户可以选择写入文件、读取文件、保存文件或退出程序。程序使用 fgets 函数从标准输入获取文本,然后使用 fprintf 函数将文本写入文件中。程序使用 fgets 函数从文件中读取文本,并使用 printf 函数将文本输出到屏幕上。程序使用 fopen 函数打开文件,使用 fclose 函数关闭文件。如果打开或创建文件失败,则程序将显示错误消息并退出。