[C++] cin, get, getline

2021. 8. 17. 16:23·C++/Basic
cin
string s;
cin >> s;
cout << s

입력값

s dw 234

출력값

s

 

- 빈칸 문자나 개행문자, 탭 문자를 무시하고 문자를 읽어들인다.

 

cin.get()
char ch[5];
cin.get(ch, 5);
cout << ch;

입력값

2 3 dws

출력값

2 3

- 문자들을 다 읽어들인다.

- 입력 큐에 개행 문자를 남겨둔다.

- 나머지 문자들을 입력 큐에 남겨둠.

 

char ch[10];
char ch2[10];

cin.get(ch, 10);
cin.get(ch2, 10);

cout << ch << "\n";
cout << ch2;

입력값

sdsdad wwwd 2222ddd

출력값
sdsdad ww
wd 2222dd

 

char ch[10];
char ch2[10];

cin.get(ch, 10);
cin.get();
cin.get(ch2, 10);

cout << ch << "\n";
cout << ch2;

- 개행문자 해결방법 cin.get()을 다음 입력 전에 한번 더 사용하여 개행 문자를 날려준다.

 

 

cin.getline()
char ch[10];

cin.getline(ch, 10);

cout << ch << "\n"

- 개행문자를 폐기한다.

- 문자열을 배열에 저장할 때 개행 문자는 널문자로 대체됨.

- getline()과 get()은 나머지 문자들을 입력 큐에 남겨둠.

- 부가적으로 getline()은 failbit을 설정하고 더 이상의 입력을 받지 않음

 

cin.getline(ch, 10);
if(ch[0] != '\0')
cin.getline(ch, 10);

- 빈 줄을 입력하게 되면 getline()은 failbit를 설정하지 않는다.

- 개행문자를 저장은 하지 않지만 추출은 하기 때문이다.

 

저작자표시 (새창열림)

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

[C++] 람다  (0) 2021.08.24
[C++] fstream으로 입력 출력  (0) 2021.08.19
[C++] cin의 false/true  (0) 2021.08.13
[C++] 출력 함수  (0) 2021.08.12
[C++] stl set  (0) 2021.08.09
'C++/Basic' 카테고리의 다른 글
  • [C++] 람다
  • [C++] fstream으로 입력 출력
  • [C++] cin의 false/true
  • [C++] 출력 함수
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    dfs
    dp
    오블완
    SpringSecurity
    spring
    백준
    티스토리챌린지
    c++ 기초 플러스
    JPA
    JWT
    Java
    알고리즘
    프로그래머스
    위클리 챌린지
  • hELLO· Designed By정상우.v4.10.0
chanheess
[C++] cin, get, getline
상단으로

티스토리툴바