2012-11-04 3 views
3

저는 C++을 처음 사용합니다.C++ wchar_t 오류가 정의되지 않았습니다.

wchar_t는 와이드 문자입니다.

다음 코드에서 무엇이 잘못 되었습니까 ?? 나는 적절한 도서관을 포함시키지 않았 느냐?

#include<iostream.h> 
#include<conio.h> 
void main() 
{ 
wchar_t *s=L"Hello, World"; 
cout<<s; 
getch(); 
} 
+0

나는 단지 "IOSTREAM 파일을 열 수 없다"라는 메시지를 이라고 썼다. – Ajay

+1

컴파일러에 ''이 없으면 C++ 표준을 구현하지 않으며 이전 천년 이후로 업데이트되지 않은 가능성이 있습니다. 당신은 그것을 사용해서는 안되며, 특히 그것을 배우지 말아야합니다. (그리고 iostream.h에 대해 언급 한 책을 쓰고 있다면 아마도 버려야 할 것입니다.) VS2012 표현과 gcc 4.7을 포함하여 오늘날 사용할 수있는 많은 좋은 옵션이 있습니다. – bames53

답변

2

여기에 문제의 숫자는 모두 아주 사소한하지만 :

#include<iostream.h> 

이 표준 C++ 헤더 끝에 .h이없는 #include <iostream>을해야합니다.

void main() 

mainint하지 void 반환해야합니다.

wchar_t *s=L"Hello, World"; 
cout<<s; 

당신이 std 네임 스페이스에 wcout를 사용하려면, 넓은 문자열을 작성하려면, 그래서 이것은 보일 것 같은 :

std::wcout << s; 

getch 그 :

getch(); 

... 일반적이지만 기술적으로 표준이 아니므로 진정한 이식성있는 코드에서는 사용할 수 없습니다. 그래도 Windows 만 신경 쓰면 걱정하지 않아도됩니다.

+0

iostream만으로 정의되지 않은 오류가 표시됩니다. 도와주세요. – Ajay

+0

컴파일러와 버전을 나열하십시오. 다음 프로그램을 컴파일합니까 :'#include '그런 다음 enter를 누른 다음'int main() {}'을 입력하십시오? – Yakk

+0

아니요 # 포함 만으로도 동일한 오류가 표시됩니다. 컴파일러 버전 : 3.0 – Ajay

3

간단합니다. Borland Turbo C를 사용하지 마십시오. 거의 20 년 전에 처음 버전 3.1을 시작했을 때 오래된 버전이었습니다. 그 시대의 Turbo C에는 stl이 나오기 전에 한 번에 릴리스 되었기 때문에 iostream (확장자 없음) 파일이 없습니다. 그 이전에는 함수가 실제로 iostream.h에서 발견되었습니다.

이와 같이, 나는 또한 wchar_t를 정의하지 않았을 것으로 기대합니다. 멀티 바이트 물건이 주변에 있었는지 기억이 안납니다. 확실히 유니 코드는 없었습니다.

가치가있는 것을 위해 5¼ "플로피 디스크에 Turbo C 사본이 있습니다. 예! 플로피 플로피 ... 이번 세기의 컴파일러를 가져 오십시오.

코드 ::는 MinGW (~ 70메가바이트 다운로드), 또는 Visual Studio Express를 (몇 백)와 블록, 도대체하기 - 심지어 DevCpp 터보 C.

(아, 그리고보다 구식이다 당신은 conio.h를 포함하여 선택의 당신의 컴파일러가 압도적으로 가능성이 있음을 나타냈다.)

+0

도와 주신 모든 분들께 감사드립니다. – Ajay

+0

반갑습니다. 행복한 코딩. :) – enhzflep

+1

음, STL은 HP의 표준 템플릿 라이브러리입니다. iostream과는 아무런 관련이 없습니다. 이름의 변경은 1998 년에 처음으로 C++ 표준에있었습니다. –