반응형



Visual Studio 2017에서 C++ 언어의 cout 함수를 사용하여 한글 출력하는 콘솔 응용 프로그램을 작성시 발생하는 문제점과 해결 방법을 설명하고 있습니다.




테스트 환경은 다음과 같습니다.


Windows 10 Pro 64 비트


Visual Studio Community 2017 




Visual Studio 2017에서 Win32 콘솔 응용 프로그램 프로젝트를 생성해서 



다음 코드를 사용해서  cout 함수printf 함수로 똑같이  한글 문자열을 출력해보면 결과가 다릅니다. 

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
 
int main()
{
    cout << "프로그래밍\n";
 
    printf("프로그래밍\n");
 
    return 0;
}
cs



..

..

cout 함수의 경우에는 결과 화면의 첫번째 줄처럼 글자 사이에 빈칸이 하나씩 들어갑니다.
printf 함수의 경우에는 결과 화면의 두번째 줄처럼 정상적으로 출력됩니다.



http://stackoverflow.com/a/35576741 에 나온 해결 방법대로 

기존 코드에 붉은색 줄들을 추가해주고 실행시켜보면 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <windows.h>
 
using namespace std;
 
#pragma execution_character_set( "utf-8" )
 
int main()
{
    SetConsoleOutputCP(65001);
 
    cout << "프로그래밍\n";
 
    printf("프로그래밍\n");
 
    return 0;
}
cs




cout 함수의 출력인 결과인 화면의 첫번째 줄도 정상적으로 출력되는 것을 볼 수 있습니다.





반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts