从c++文件中读取递增整数

Reading incrementing integer from file c++

本文关键字:整数 读取 c++ 文件      更新时间:2023-10-16

我有一个程序需要创建一个名为"timestamp.txt"的文件,并使用以下命令完成:

ofstream outstream;
outstream.open("timestamp.txt", ios::app);

我需要这个文件被创建一次,并具有1的初始值。然后需要增加这个数字。

文件创建后,我可以使用:

outstream << "1";

将数字1放入文件中。如何在创建文件时执行此操作,以便在每次程序运行时不重置该值?

然后我需要将这个值1存储在本地变量time中。这可以在程序的第一次执行时完成,但是在接下来的执行中,我如何将数值作为整数取出并将其存储在可变时间中?

在我的程序开始执行之后,本地变量time被增加,然后必须放回timestamp.txt中。

ofstream outstream;
outstream.open("timestamp.txt", ios::in);
outstream << time;

编辑:我对c++非常缺乏经验。我很高兴地发现,我对它的了解比我实际了解的要多。与ifstream相比,我更适应ofstream的交互。使用:

ifstream instream("timestamp.txt");
if (instream.good())
{
    getline(instream, timestamp);
    time = timestamp;
}

我可以检索timestamp.txt中第一行的字符串值,但我需要这个值作为整数而不是字符串。

如果您想从文件中获取一个整数,您可以使用:

stoi(string);

从字符串返回一个整数。

下面是一个现场演示:https://ideone.com/R8KIyP

请注意,stoi只适用于c++ 11及以上版本,所以如果你没有c++ 11,你可以选择使用c++的stringstream。

你也可以参考这个问题了解更多细节:如何解析一个字符串到一个int在c++ ?