У меня есть функция, которая читает файл конфигурации, и я хотел перезагрузить эту функцию, чтобы получить новые переменные
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();
}
пока я ищу в интернете о перезагрузке
я обнаружил, что могу сделать это с перегрузкой операторов
но я не мог использовать это
я все еще новичок 🙁
Благодарю вас 🙂
Я предполагаю, что проблема в том, что переменные Hour
а также Minuts
(так) являются местный к readConfigFile
функция.
Это означает, что всякий раз, когда вы звоните readConfigFile
вы изменяете только эти локальные переменные, а не глобальные переменные, которые у вас могут быть.
Если эти переменные были глобальными, то вам просто нужно вызвать readConfigFile
снова, и это будет читать в них снова.
Если я не понял ваш запрос, я думаю, вы уже написали код самостоятельно.
Вы спрашиваете, как вы можете загрузить свои новые часы и минуты в вашу программу, пока она работает в main()
«s 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);
}
РЕДАКТИРОВАТЬ:
Моя вина в том, что «Час» и «Мин» — это местные переменные …
Пожалуйста, измените их на Global Vars.