Linux C,任意位置后+1的字符覆盖当前需要删除的字符,打印删除的字符和删除文件的位置,示例代码
时间: 2024-02-20 09:56:15 浏览: 43
C语言 以字符形式读写文件详解及示例代码
5星 · 资源好评率100%
下面是一个示例程序,它实现了从文件中删除任意一个字符并用其后面的字符覆盖它,然后打印删除的字符和删除的位置:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *fp;
char filename[100], c, next;
int pos = 0;
printf("Enter the filename: ");
scanf("%s", filename);
fp = fopen(filename, "r+");
if (fp == NULL) {
printf("Error: cannot open file.\n");
exit(1);
}
printf("Enter the position of the character you want to delete: ");
scanf("%d", &pos);
fseek(fp, pos-1, SEEK_SET);
c = fgetc(fp);
next = fgetc(fp);
printf("Deleting character '%c' at position %d.\n", c, pos);
fseek(fp, pos-1, SEEK_SET);
fputc(next, fp);
fclose(fp);
return 0;
}
```
该程序会让用户输入要操作的文件名和要删除的字符的位置。然后,它会打开文件,在指定位置读取字符和其后面的字符并打印出来,然后将该位置的字符替换为其后面的字符。最后,程序关闭文件并退出。
请注意,该程序只能删除文件中的一个字符,并且它将用其后面的字符覆盖该字符。如果您需要删除多个字符或者更改替换字符,请修改程序以满足您的需求。
阅读全文