Как мне 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;
Все переменные, объявленные в 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();
/* ... */
}
Надеюсь это поможет!
Главная - это точка входа для вашей программы. Main вызывается один раз (обычно) и, когда он выходит, ваша программа срывается и очищается.
Очевидно, это означает, что локальная переменная будет недостаточной. Вам нужно какое-то внешнее хранилище, которое сохраняется дольше, чем ваше приложение, то есть файловая система.
Вы не можете. Каждый запуск программы является независимым. Вам нужно будет сохранить mainCallCounter
где-нибудь и перечитать его при следующем запуске приложения. Запись в файл - это один из вариантов, другой может быть чем-то вроде реестра Windows или системы по умолчанию Mac OS X и т.д.
main
вызывается один раз, точка в C ++.int main() { main(); }