好吧,这可能是最简单(或最愚蠢)的问题,但我刚刚知道...
假设我有一个包含帐号的文本文件。和平衡。我正在编写一个程序来使用输入的帐号搜索文件。并使用新余额更新同一文本文件中的余额字段。 我发现使用文件流这样做非常困难。问题是我试图用新的 balance 字符串覆盖所述文本文件中的 balance 字符串。
因此,如果余额为 1000(4 位),我可以用另一个 4 位字符串覆盖它。但是,如果新余额字符串超过 4 位,它将覆盖余额字段之后的数据(请注意,这是一个简单的文本文件......)。 例如,如果文本文件包含
Acc. No. balance
123456 100
123567 2500
字段之间用制表符'\t'分隔,下一条记录用换行符'\n'分隔。如果我为帐户 123456 输入 200000 的新存款,fwrite() 函数将覆盖文本文件中的数据,如...
Acc. No Balance
123456 2001003567 2500
您可以注意到余额字段后的'\n',以及来自下一个帐户的acc 的2 位数字。不。被覆盖。
当然,没有人希望这种情况发生:) 我需要的是一种在该文件中插入文本的方法,而不仅仅是覆盖它。使用 Java、python 甚至 SED 执行此操作有很多结果,但使用 FILE 流没有任何结果。 请分享您的想法...谢谢。
最佳答案
您必须首先将插入点之后的所有数据向上移动几个字节。这也是 Java、sed 或 python 所做的,如果它们不是开始编写临时文件的话。
关于linux - 将文本插入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7609938/