c - 覆盖txt文件中的单行

标签 c

我正在编写一个写入 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/

相关文章:

c - C 中具有相同名称的函数

c - C 中的 unicode 字符串比较

c - 一条无用的语句如何影响这个 C 程序?

c - 递归 block 矩阵乘法

c++ - 如何设置方边线api窗口

c - c中的快速二进制搜索/索引

c - 在 C 中将目录构建为树

c - 在winsock中阻止相同的地址

Calloc 无法从不同的 .c 文件访问 -

c - C 中的 sizeof() 函数