string에 한글 입력이 들어가지 않는 이유
2019. 8. 11. 23:59ㆍPL/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 |