2016-11-05 1 views
-3

내가 만드는 프로그램에서 변경하려는 주 메뉴의 옵션을 전환 할 수 있어야합니다 24 시간 시계에서 12 시간 시계로 그리고 그 반대로도 가능합니다. 토글을 만들려면 bool 값을 바꿔야한다는 것을 이해합니다. 그러나 그렇게하는 방법을 모릅니다.부울 표현식을 사용하여 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; 
} 
관련 문제