文件程序 - fseek不工作

时间:2013-06-25 18:40:19

标签: c file fseek

我无法在我的代码中使用此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);
    };

发生了什么事?为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

导航到绝对仅在以二进制模式打开文件时有效。当它在文本模式下打开时,fseek()无法导航到除0(文件的开头)之外的文件中的绝对位置,并且尝试这样做将导致未定义的行为。但是,您可以导航到ftell()返回的文件中的引用。造成这种情况的原因是某些操作系统处理某些字符;一些实现允许它,但POSIX不强制它。

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