【发布时间】:2022-01-08 11:42:45
【问题描述】:
我需要读取一个文本文件 (E3-5.txt),然后搜索要替换为 c2 的字符 c1。 这是我的不完整代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char c;
char c1 = 'm';
char c2 = 'a';
int i;
FILE* fp;
fp = fopen("C:\\E3-5.txt", "r+");
if (fp == NULL)
{
printf("File not found!");
return 0;
}
for(c = getc(fp); c != EOF; c = getc(fp))
{
if(c == 'm')
{
i = ftell(fp);
printf("\nPosition %d", i);
}
}
}
我在如何定位 c1 在文本中的位置以及如何重写它时遇到了麻烦。 编辑: 我使用了答案中的代码,但它没有改变文本。 这是新代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char c;
char c1 = 'm';
char c2 = 'a';
int i;
FILE* fp;
fp = fopen("C:\\E3-5.txt", "rb+");
if (fp == NULL)
{
printf("File not found!");
return 0;
}
else
{
for(c = getc(fp); c != EOF; c = fgetc(fp))
{
if(c == c1)
{
fseek(fp, -1, SEEK_CUR);
fputc(c2, fp);
}
else
{
return 0;
}
}
}
return 0;
}
程序返回0,文本中没有写任何东西
【问题讨论】:
-
因为它是用
rb+打开的窗口