1

我无法让这个 fseek() 函数在我的代码中工作。我写的文字只是没有从我指出的地方开始,我不知道为什么。它应该从 \n 开始写入,它只是覆盖所有文本文件。即使我用它打开它a也不会去我通过参数命令的地方。

   fclose(file);
    FILE *file_a = fopen("ex6.txt", "w");

    fseek(file_a, -1, SEEK_END);

    puts("Write text to add:");
    while((letter = getchar()) != '\n')
    {
        fputc(letter, file_a);
    };

怎么了?为什么这不起作用?

4

1 回答 1

1

仅当文件以二进制模式打开时,导航到绝对值才有效。当它以文本模式打开时,fseek()无法导航到文件中除 0(文件开头)之外的绝对位置,尝试这样做会导致未定义的行为。但是,您可以导航到由ftell(). 其原因是由于某些操作系统对某些字符的处理;一些实现允许它,但 POSIX 不强制它。

我知道你在评论中解决了这个问题,这只是为了结束。

于 2013-06-25T20:24:52.890 回答