C ++ store количество раз, когда main называется [closed]

0

Как мне 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;
Теги:
static
main

3 ответа

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();

    /* ... */
}

Надеюсь это поможет!

2

Главная - это точка входа для вашей программы. Main вызывается один раз (обычно) и, когда он выходит, ваша программа срывается и очищается.

Очевидно, это означает, что локальная переменная будет недостаточной. Вам нужно какое-то внешнее хранилище, которое сохраняется дольше, чем ваше приложение, то есть файловая система.

  • 0
    main вызывается один раз, точка в C ++.
  • 0
    @CarlNorum: это правильно? int main() { main(); }
Показать ещё 4 комментария
1

Вы не можете. Каждый запуск программы является независимым. Вам нужно будет сохранить mainCallCounter где-нибудь и перечитать его при следующем запуске приложения. Запись в файл - это один из вариантов, другой может быть чем-то вроде реестра Windows или системы по умолчанию Mac OS X и т.д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню