每次调用变量时,如何让main()记住变量的值?
即。如果我第一次运行这个程序mainCallCounter = 0
,但是当我再次被调用时,我希望它增加计数器
#include <iostream>
using namespace std;
static int mainCallCounter = 0;
void outputMainCallCount()
{
cout << "Main was called" << mainCallCounter << "times." << endl;
}
int main()
{
outputMainCallCount();
mainCallCounter++;
return 0;
答案 0 :(得分:2)
主要是您的计划的切入点。 Main被调用一次(通常),当它退出时,你的程序被拆除并清理干净。
显然这意味着局部变量不足。您需要某种外部存储,其持续时间比您的应用程序(即文件系统)更长。
答案 1 :(得分:1)
你做不到。程序的每次运行都是独立的。您需要在某处保存mainCallCounter
并在下次应用程序启动时重新读取它。将其写入文件是一种选择,另一种可能是Windows注册表或Mac OS X默认系统等。
答案 2 :(得分:0)
在程序结束时,C ++中声明的所有变量都将过期。如果您想要永久记住程序运行的次数,则需要将该数据存储在外部文件中,并在运行程序时对其进行更新。
例如:
#include <iostream>
#include <fstream>
int numTimesRun() {
std::ifstream input("counter.txt"); // assuming it exists
int numTimesRun;
input >> numTimesRun;
return numTimesRun;
}
void updateCounter() {
int counter = numTimesRun();
std::ofstream output("counter.txt");
output << counter;
}
int main() {
int timesRun = numTimesRun();
updateCounter();
/* ... */
}
希望这有帮助!