我正在编写一个写入 txt 文件的 C 程序。第一行是一个数字,我想定期更新。我遇到的问题是它从 1 开始,当我到达数字 10 时,它会覆盖文件中的下一个字符。 这就是我得到的:
之前:
9
hello
之后:
10
ello
我想要这个:
10
hello
我应该怎么做?提前致谢
PS:这是我的代码:
int nkv = 9;
char nkvst[10];
sprintf(nkvst, "%d\n", nkv);
fputs(nkvst, fp[3]);
fputs("hello", fp[3]);
fseek(fp[3], 0, SEEK_SET);
nkv = 10;
sprintf(nkvst, "%d\n", nkv);
fputs(nvkst, fp[3]);
最佳答案
简单的解决方案:如果您事先知道要存储在文件中的最大数字,则将您的数字存储在文件中并带有额外的数字/空格(方便时)。
例如,如果您的号码不会高于 999999,则:
int nkv = 9;
char nkvst[10];
sprintf(nkvst, "%.6d\n", nkv);
fputs(nkvst, fp[3]);
fputs("hello", fp[3]);
fseek(fp[3], 0, SEEK_SET);
nkv = 10;
sprintf(nkvst, "%.6d\n", nkv);
fputs(nvkst, fp[3]);
关于c - 覆盖txt文件中的单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174929/