0

我正在将一些字符串写入文件,然后将其倒回。这个,我在循环中做。
实际上,它工作得很好,但是在文件的末尾,它从最后一个字符串中复制了一些字符。我如何摆脱多余的字符?

所以,我有一个循环,它将字符串写入文件,并在每次循环结束时倒回它:

for loop{
fputs("string1\n",file);
fputs("string2\n",file);
fputs("string3\n",file);
fputs("stringLAST",file);
fseek(file,0,SEEK_SET);} // 或使用 rewind(file); 我得到相同的结果。

结果我的文件看起来像这样:

string1
string2
string3
stringLASTstringLASTASTASTSTST

现在,我在字符串上有多余的字符stringLAST。但我需要它看起来像这样:

string1
string2
string3
stringLAST

4

1 回答 1

3

您可能希望在重写之前将文件截断为零长度,如下所示:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

  ...
  if (-1 == fseek(file, 0, SEEK_SET))
    perror("fseek()");

  if (-1 == ftruncate(fileno(file), 0))
    perror("ftruncate()");
}
于 2013-05-17T14:34:18.567 回答