我想更改文件的一个值,但以下代码根本不起作用。当我删除 if 语句时它可以正常工作。
代码如下:
#include <stdio.h>
int main()
{
int b;
FILE *fp;
fp=fopen("new", "r+");
fseek(fp, 0x30, 0);
b = fgetc(fp);
if(b == 0x63)
fputc(0x64, fp);
fclose(fp);
return 0;
}
文件"new": c111111111c1111111111111111111111111111111111111c1111111111111111111
有什么细节我不知道吗?
最佳答案
如果它是 0x63
,那么您已经写了一个过去 b
,因为 fgetc
推进了文件流:
b = fgetc(fp);
if(b == 0x63) {
fseek(fp, -1, SEEK_CUR);
fputc(0x64, fp);
}
关于c++ - Fputc 在 if else 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10347778/