gpt4 book ai didi

c - fseek() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:02 24 4
gpt4 key购买 nike

我已经使用 a 和 r+ 打开了一个文件,但是当我使用 fseek 和 ftell 时,文件指针始终为 0。我的文件如下所示:

 1 -3     
2 -8

我想在两者之间添加另一行,但它是在最后一行之后添加的。另一个论坛上有人说,当你在 append 中打开文件时,指针总是为零,你必须在 r+ 中打开它,如果这不起作用“你必须读取完整的数据,然后将数据插入变量和写回来。”但我不明白他们的意思。

谁能帮忙在文件中间插入数字?

谢谢!

这样的东西行得通吗?要传输数据?

    rewind(fp);
fscanf(fp,"%d",&ch);
fprintf(fp1,"%d",ch);
fseek(fp,1,0);
fscanf(fp,"%d",&ch);
fprintf(fp1,"%d",ch);

最佳答案

正如其他人所说,没有简单的方法可以在文件中间插入数据。如果你真的想这样做,你可以执行以下步骤:

  1. 创建第二个文件
  2. 将要插入的位置之前的所有数据复制到第二个文件
  3. 在第二个文件中插入你想要的行
  4. 将剩余数据复制到第二个文件
  5. 删除原文件
  6. 重命名第二个文件

其他方法是使用二进制文件而不是文本文件。尽管二进制文件有点难学,但一旦您了解了它们的工作原理,您就会发现使用它们与使用数组非常相似。例如,要执行此任务,您甚至不需要使用辅助文件。

关于c - fseek() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com