2014-12-12 4 views
0

확장 ASCII 테이블에서 문자가있는 문자열을 저장하고 인쇄하려고합니다. 나는 시도 :C 저장 및 인쇄 wchar_t

wchar_t wp[] = L"Росси́йская Акаде́мия Нау́к "; 
printf("%S", wp); 

내가 컴파일 할 수 있지만 나는 그것을 실행할 때, 아무것도 실제로 내 단말기에 표시되지 않습니다.

은 당신이 나를 도와 주 시겠어요?

편집 :이 댓글에 대응 : 단지 내 첫 번째 시도에 대한 printf을 사용되면서

wprintf(L"%s", wp); 

죄송합니다, 나는) 난 단지 쓰기 (사용할 수있는 얘기를 깜빡 했네요. 당신이 (16 비트 각각) 출력으로 와이드 문자를 원한다면 마이클에 의해 제안

+1

설명, * "아무 것도 일어나지 않습니다"*? 귀하의 코드가 컴파일됩니까? 실행됩니까? 프로그램의 다른 부분이 제대로 작동합니까? – abelenky

+1

'wprintf (L "% s", wp); ' –

+0

'fflush (stdout);을 실행하십시오. – nos

답변

1

가, 다음 코드를 사용 : 당신이 UTF8 출력을해야하는 경우

wprintf(L"%s", wp); 

, 당신은 사이의 변환의 iconv()를 사용해야합니다 둘. 시작 지점으로 question 7469296을 참조하십시오.

+0

wprintf를 사용할 수 없기 전에 printf의 % S 옵션을 write 및 va_arg로 다시 구현해야합니다. – lordfiren

+0

그런 다음 iconv()를 사용하여 넓은 문자열을 UTF-8로 변환하고 write()를 사용하여 출력합니다. (UTF-8 출력을 생성해야한다고 가정). –