2016-06-20 4 views
-4

저는 LearnCpp.com의 2 장 퀴즈에서 C++을 처음 사용했습니다. 나는 붙어있어 질문이있다. std :: cout 문 안에 변수를 추가 할 수 있습니까? 예 :"cout"안에 변수를 추가 할 수 있습니까

프로그램이 내 대답을 표시하지 않습니다. 값을 입력 한 후 사용자가 Enter를 누르면 프로그램이 종료됩니다. 도움을 주셔서 감사합니다.

편집 : 전체 코드를 게시하지 않아서 죄송합니다. 나는 또한 포럼에 새로운 있습니다. 누군가 제안한 것처럼 ()을 추가했습니다. 나는이 프로그램을 실행하면 나는 그것을 두 번째 분할에 대한 답을 표시했다 생각하고 그것은 Press any key to continue. . .

#include "stdafx.h" 
#include <iostream> 

int main() 
{ 
double first_value; 
double second_value; 
char user_operator; 

std::cout << "Enter a double value: "; 
std::cin >> first_value; 
std::cout << "Enter a second double value: "; 
std::cin >> second_value; 
std::cout << "Enter one of the following (+, -, *, /): "; 
std::cin >> user_operator; 

if (user_operator == 43 || user_operator == 45\ 
    || user_operator == 42 || user_operator == 47) 
    switch (user_operator) 
    { 
     case 43: 
      std::cout << " " << (first_value + second_value) << "\n"; 
      break; 
     case 45: 
      std::cout << " " << (first_value - second_value) << "\n"; 
      break; 
     case 42: 
      std::cout << " " << (first_value * second_value) << "\n"; 
      break; 
     case 47: 
      std::cout << " " << (first_value/second_value) << "\n"; 
      break; 
    } 
else std::cout << "Please enter a valid operator."; 

return 0; 

}

+3

실제 문제를 분리하려고 시도했을 때 문제가 발생했습니다. 아마도 '사건'중 어느 것도 취해지지 않았을 것이다. – LogicStuff

+1

'switch' 문이란 무엇입니까? 그것은 아마도 문제의 원인 일 것입니다. 참고 : '<<'는 산술 연산자 (+ - * ./)보다 우선 순위가 낮기 때문에 표현식을 '추출'할 수 있습니다. 그렇지 않은 경우에도 괄호 안에 표현식을 넣을 수 있습니다. –

+3

_ @ marcellatwin_ 가짜 코드를 게시하지 마시고, 직면 한 문제를 재현하는 [MCVE]를 보내주십시오. –

답변

3

예, 당신이 std::ostream& operator<<(std::ostream&, T) 호출 체인 내에서 작업을 수행 할 수있는 표시되지 않습니다. operator precedence을 따르고 괄호 (())를 필요하면 구별 할 수 있도록 표기법을 사용해야합니다.

여기는 고정 된 Demo입니다.