string에 한글 입력이 들어가지 않는 이유

2019. 8. 11. 23:59PL/C++

기본적으로 C언어에서 한글은 8비트가 아니라, 유니코드로 16비트 이상이 사용될 수 있다. 그래서 한 바이트씩 출력하는 char 형을 사용하는 경우, 정상적인 출력 결과가 나오지 않을 수 있다

 

#include <string>
#include <iostream>

using namespace std;

int main(void) {
	string input;
	cin >> input;
	for (int i = 0; i < input.size(); i++) {
		cout << input[i] << '\n';
	}
	return 0;
}

 

위와 같은 코드에서 영문으로 입력하면 한 바이트씩 아스키코드에 맞춰서 나오지만 한글은 char에 담지 못하므로 출력되지 않는다

'PL > C++' 카테고리의 다른 글

상속에서의 생성자와 소멸자  (0) 2019.08.12
C++ 클래스 변수 초기화와 this 포인터  (0) 2019.08.12
Visual Studio와 GitHub을 연동  (0) 2019.08.11
fgets, scanf로 대체하기  (0) 2019.08.01
string::compare  (0) 2019.08.01