【问题标题】:Changing a Value in a Text File c++更改文本文件中的值 c++
【发布时间】:2012-06-17 23:21:58
【问题描述】:

我想知道是否有一种方法可以在您阅读时更改文本文件的特定行。我正在创建一个 ATM 程序,我想在他们提取或存入某些东西时更改个人账户中的金额。我有一个用于用户名、密码和余额的文本文件,但我只想更改余额。我该怎么做呢?

【问题讨论】:

  • 读取整个文件,更改您想要的行,再次写入文件。

标签: c++ text-files


【解决方案1】:

由于这是家庭作业,因此我将简要介绍您应该在这里做什么。

您可以读入文件,找到余额,更改它,然后将文件写回。

可以使用 ifstream 来读取文件,您可能想要使用的函数是 getline

然后您可以使用ofstream 将其写回。

【讨论】:

  • 最好使用std::getline 和 std::string 而不是成员函数。
  • 谢谢。我重新写了。但现在它在文本文件中无限重复。
【解决方案2】:

仅当更改的文本与原始文本具有相同的字节长度时,才能在文本文件中原地更改行。如果不能保证这一点(听起来你的作业肯定就是这种情况),当文件很小时,一种特别有效的常用方法是创建一个临时文件,将新内容写入其中,然后交换文件,并删除原件。这种方法的一个优点是,如果写入操作在中间停止,您的文件不会损坏:临时文件损坏,而原始文件保持不变。

【讨论】:

  • 通常是“写入临时文件”,“交换文件”,然后“删除”,这样,在任何时候,都有一个正确名称的有效文件。你的方式,如果你删除了电源,但移动失败,那么没有正确名称的文件。
  • 只是一个警告:这可能很棘手;仅当您认为您的老师会欣赏您的作业的非凡稳健性时,才尝试实施此操作
猜你喜欢
  • 2015-01-15
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
  • 2013-10-14
  • 1970-01-01
  • 2011-08-31
相关资源
最近更新 更多