我无法在我的代码中使用此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);
};
发生了什么事?为什么这不起作用?
答案 0 :(得分:1)
导航到绝对仅在以二进制模式打开文件时有效。当它在文本模式下打开时,fseek()
无法导航到除0(文件的开头)之外的文件中的绝对位置,并且尝试这样做将导致未定义的行为。但是,您可以导航到ftell()
返回的文件中的引用。造成这种情况的原因是某些操作系统处理某些字符;一些实现允许它,但POSIX不强制它。
我知道你在评论中解决了这个问题,这只是为了关闭。