应用程序运行时的 C++ 重新加载功能

c++ reload function while application running

本文关键字:加载 功能 新加载 运行时 C++ 应用程序      更新时间:2023-10-16

我有一个读取配置文件的函数,我想重新加载这个函数来获取新变量

void readConfigFile()
{
    ifstream File;
    File.open("config.txt", ios::in);
    while (!File.eof()){
        string line;
        int Hour;
        int Minuts;
        getline(File, line);
        File >> Hour >> Minuts;
    }
    File.close();
}
int main()
{
    readConfigFile();
    while (1) {
        time_t now;
        struct tm *current;
        now = time(0);
        current = localtime(&now);
        if( current->tm_hour == Hour && current->tm_min == Minuts){
            std::cout <<  "Done" << std::endl;
        }
        Sleep(5000);
    }
    return 0;
}

我如何在应用程序运行时重新加载此 readConfigFile() 函数以获取新的小时/Minuts

例如

if(Clicked Button){
reload readConfigFile();
}

当我在互联网上搜索有关重新加载的信息时

发现我可以通过运算符重载来做到这一点

但我不能使用它

我仍然是乞丐:(

谢谢:)

我猜问题是变量HourMinuts(原文如此)是readConfigFile函数的局部变量

这意味着无论何时调用readConfigFile,您都只更改这些局部变量,而不更改您可能拥有的任何全局变量。

如果这些变量是全局变量,那么您只需再次调用readConfigFile,它就会再次读取它们。

如果我没有误解您的请求,我认为您已经自己编写了代码。

您是在问如何在程序中运行时将新的小时和分钟加载到程序中main() while循环中?

int main()
{
    readConfigFile();
    while (1) {
    // Read the Config file here
    if (Button Clicked)
    {
        readConfigFile();
    }
    time_t now;
    struct tm *current;
    now = time(0);
    current = localtime(&now);  
    if( current->tm_hour == Hour && current->tm_min == Minuts){
        std::cout <<  "Done" << std::endl;
    }
    Sleep(5000);
}

编辑:

我的错没有注意到小时和敏是本地变量...

请将它们更改为全局变量。