我正在尝试读取文件并将每个字符替换为 ASCII 表中对应的字符。它正确打开文件,但继续读取第一个字符。
int main(int argc, char * argv[])
{
FILE *input;
input = fopen(argv[2], "r+");
if (!input)
{
fprintf(stderr, "Unable to open file %s", argv[2]);
return -1;
}
char ch;
fpos_t * pos;
while( (ch = fgetc(input)) != EOF)
{
printf("%c\n",ch);
fgetpos (input, pos);
fsetpos(input, pos-1);
fputc(ch+1, input);
}
fclose(input);
return 1;
}
文本文件是
abc
def
ghi
我很确定这是由于 fgetpos 和 fsetpos 造成的,但如果我删除它,它会在文件末尾添加字符,下一个 fgetc 将返回 EOF 并退出。