我有一个程序需要创建一个名为“timestamp.txt”的文件,并通过以下方式完成此任务:
ofstream outstream;
outstream.open("timestamp.txt", ios::app);
我需要创建一次此文件,初始值为1.此数字需要递增。
创建文件后,我可以使用:
outstream << "1";
将数字1放在文件中。如何在创建文件时执行此操作,以便每次程序运行时都不会重置该值?
然后我需要在本地变量时间内存储此值1。这可以在第一次执行程序时完成,但是在执行后续操作时,如何将数值作为整数拉出并以可变时间存储?
执行程序开头后,局部变量时间会增加,然后必须放回timestamp.txt。
ofstream outstream;
outstream.open("timestamp.txt", ios::in);
outstream << time;
编辑: 我对C ++缺乏经验。我很高兴地发现我对io的了解比我真正了解的更多。我很喜欢ofstream的互通,比ifstream更多。使用:
ifstream instream("timestamp.txt");
if (instream.good())
{
getline(instream, timestamp);
time = timestamp;
}
我可以在timestamp.txt中检索第一行的字符串值,但我需要将此值作为整数而不是字符串。
答案 0 :(得分:0)
如果要从文件中获取整数,可以使用:
stoi(string);
将返回字符串中的整数。
这是一个现场演示:https://ideone.com/R8KIyP
请注意,stoi仅适用于C ++ 11及更高版本,所以如果你没有C ++ 11,你也可以使用C ++的stringstream。
您还可以参考此问题以获取更多详细信息: How to parse a string to an int in C++?