-1

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

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() 函数以在应用程序运行时获取新的小时/分钟

例如

if(Clicked Button){

reload readConfigFile();

}

当我在互联网上搜索重新加载时

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

但我无法使用它

我还是初学者:(

谢谢你 :)

4

2 回答 2

1

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

您是否在问如何在程序中运行时将新的 Hour 和 Min 加载到main()'swhile循环中?

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

编辑:

我没有注意到 Hour 和 Min 是本地变量的错...

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

于 2012-11-22T06:25:07.537 回答
1

我猜问题是变量HourMinuts(原文如此)是函数的本地变量。readConfigFile

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

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

于 2012-11-22T06:17:39.113 回答