2014-02-10 6 views
0
#include <iostream> 
#include <iomanip> 
int main() 
{ 
    long double price; 
    std::cout << "Please, enter the price: "; 
    std::cin >> std::get_money(price); 

    if (std::cin.fail()) std::cout << "Error reading price\n"; 
    else std::cout << "The price entered is: " << price << '\n'; 

    return 0; 
} 

위의 프로그램을 컴파일하는 동안 오류가 발생했습니다.get_money() 함수에서 오류가 발생했습니다.

getmoney.cpp : 함수 int main()': getmoney.cpp:10: error:에서 get_money는 'std'의 멤버가 아닙니다.

get_money는 미리 정의 된 기능입니다. 왜이 오류가 발생하는지 알 수 없습니다.

+1

코드를 어떻게 컴파일합니까? 어떤 컴파일러 버전? 컴파일러 인수 ('-std = C++ 11'이 필요할 수도 있습니다)? [std :: get_money] (http://www.cplusplus.com/reference/iomanip/get_money/)는 C++ 11 추가입니다. –

+1

# # 을 포함 했습니까? – herohuyongtao

+1

나는'get_money'와 항상 문제가있는 것 같습니다 ... –

답변

3

iomanip을 포함하지만 컴파일러가 오류를 발행하면 컴파일러가 C++ 2011 표준을 지원하지 않거나 컴파일러의 해당 옵션을 선택하지 않았 음을 의미합니다.

+0

어떻게하면 C를 지원하도록 컴파일러를 변경할 수 있습니까? ++ 2011 표준? – Jeyamaran

+0

@Jeyamaran 당신이 사용하고있는 whar 컴파일러를 모르겠다. 그러나 비슷한 질문을 여기에서 검색하거나 자신의 질문을 할 수있다. –

1

코드에 "iomanip"헤더를 포함 시켰습니까? 당신은 그런 문제가

+4

질문에 대답하지 마십시오. * iomanip을 헤더로 포함시키는 것이 더 나은 응답 방법이었을 것입니다. – Ranveer

+0

예 iomanip.h를 포함합니다. – Jeyamaran

0

총리는 http://www.cplusplus.com/reference/iomanip/get_money/

등 참조 웹 사이트에서 확인하십시오로 이동하고 해당

This manipulator is declared in header <iomanip>. 

표시되고 당신도 자주 당신이 그것을 사용하는 방법을 보여 예제 코드가 . 그래서, 당신은 아마 C++ 11을 지원하지 않는 구형 컴파일러를 사용하는 그러므로 당신은 단순히 당신의 컴파일러를 변경하지 않고이 기능을 사용할 수 없습니다 작동하지 않는 경우 문제를

를 해결할 수 있습니다 iomanip을 포함

.

+0

예요 이미 포함되어 있습니다. – Jeyamaran

+0

그런 다음 컴파일러에서 C++ 11을 지원하는지 확인하십시오. C++ 11에서만 지원되는 명시 적 (함수 이름 외에도 작은 노란색 경고 삼각형)이므로 – taktak004

관련 문제