2016-11-05 16 views
-3

在我創建的程序中,我需要能夠從主菜單切換選項以更改24小時制到12小時制,反之亦然。我知道我需要交換布爾值來創建切換,但我不知道如何去做。這裏有以下功能:我試圖創建一個函數,使用布爾表達式在24小時制和12小時制之間切換

void printTime(int h, int m, bool mode) 
{ 
if (mode = 0) 
{ 
    mode = 1; 
    cout << "24-hour mode turned on" << endl; 
} 
else 
{ 
    mode = 0; 
    cout << "12-hour mode turned on" << endl; 
} 
} 
+3

在C/C++中使用'=='來測試相等性。 '='用於分配。 –

+0

此外,您只是更改本地變量,它不會影響任何外部範圍。你能更好地解釋你的意圖嗎? –

+0

在程序中,我需要這個功能來改變時間(+或 - 時間),這樣如果24小時模式切換,時間將在24小時內讀取,而如果12小時模式是切換時間將在12小時內讀取。 –

回答

0

爲了能夠改變函數範圍之外的任何變量,你應該傳遞一個引用。

void printTime(int h, int m, bool& mode) 
{ 
    mode = !mode; //Toggle mode 
    std::cout << (mode ? "24" : "12") << "-hour mode turned on" << std::endl; 
} 

然後它可以改變一個值在不同的範圍;

int main() 
{ 
    bool mode24 = true; 
    printTime(2, 4, mode24); //changes mode24 to false 
    printTime(2, 4, mode24); //changes mode24 back to true 

    return 0; 
}