2012-11-22 14 views
-1

我有读取配置文件的功能,我想重装这个功能来获得新的变量C++重装功能,同时应用程序运行

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

} 

而我搜索互联网上关于重载

我发现我能做到这一点与运营商超载

,但我不能用它

我仍然begainner :(

谢谢:)

回答

1

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

这意味着只要您致电readConfigFile,您只能更改这些局部变量,而不是您可能拥有的任何全局变量。

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

+0

所以我怎么可以再次调用readConfigFile,它已经在 –

+0

@beshoyMounir之前调用过这是一个普通的函数,我没有看到那个函数可以阻止它被多次调用。就像你在'main'的循环中多次调用'localtime'函数一样,你可以多次调用你的函数。 –

+0

明白,谢谢 –

1

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

您是否问过如何在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); 
} 

编辑:

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

请更改为全局变量。

+0

嗯,好,谢谢 –

相关问题