728x90
반응형
#include <iostream>
#include <cstring>
using namespace std;
int main() {
//사용자 입력
const int Size = 15;
char name1[Size]; // 비어있는 배열
char name2[Size] = "C++programing"; // 문자열 상수로 초기화된 배열
cout << "안녕하세요! 저는 " << name2;
cout << "입니다! 성함이 어떻게 되시나요?\n";
//cin >> name1;
cin.get(name1, Size, 'a');
cout << "음, " << name1 << "씨, 당신의 이름은 ";
cout << strlen(name1) << "자입니다만\n";
cout << sizeof(name1) << "바이트 크기의 배열에 저장되었습니다. \n";
cout << "이름이 " << name1[0] << "자로 시작하는군요.\n";
name2[3] = '\0';
cout << "제 이름의 처음 세 문자는 다음과 같습니다: ";
cout << name2 << endl;
return 0;
}
사용자 입력
- cin : 공백을 문자열의 끝으로 처리함. 결국 공백이 있는 문자열 전부를 인식하지 못함.
- cin.get(변수 주소, 최대 사이즈, 종결 문자) : 공백을 포함하여 문자열을 받을 수 있음.
- cin.getline(변수 주소, 최대 사이즈, 종결 문자) : 공백을 포함하여 문자열을 받을 수 있음.
cin.get과 cin.getline의 차이
cin.get() 은 개행문자(\n)를 만나면 문자열에 null문자(\0) 를 입력하고 개행문자는 입력 큐에 남겨두지만, cin.getline() 은 개행문자를 입력큐에서 지워 버린다.
즉, cin.get()은 개행문자를 남겨두기 때문에, cin.get()으로 입력을 받고 한번 더 cin.get() 또는 cin.getline()를 쓰는 경우 두번째 사용자 입력(파란색)은 곧바로 개행문자를 읽어서 종료되게 된다.
아래 링크에서 예제를 쉽게 확인할 수 있다. 나중에 기회가되면 예제로 정리할 것이다.
https://stackoverflow.com/questions/26873401/difference-between-cin-get-and-cin-getline
728x90
반응형
'Software > C++' 카테고리의 다른 글
[C++ 기초] 9. 구조체(Struct) (0) | 2023.03.12 |
---|---|
[C++ 기초] 8. String형 (0) | 2023.03.10 |
[C++ 기초] 6. 배열과 문자열 (1) | 2023.03.10 |
[C++ 기초] 5. 산술연산자와 auto형 (0) | 2023.03.08 |
[C++ 기초] 5. const 제한자와 데이터형 변환 (2) | 2023.03.07 |
댓글