지나공 : 지식을 나누는 공간
C++ 한번에 한줄로 입력받기, 글자 수 왜 다른가 본문
띄어쓰기를 포함해서 원하는 글자 수 만큼 한줄로 한번에 입력받기
cin의 getline이나 fgets를 사용할 수 있는데 fgets가 좀 더 빠르다.
1. cin.getLine(저장할 문자열, 글자 수)
#include <iostream>
#include <vector>
using namespace std;
int main() {
char chars[10];
cin.getline(chars, 10);
cout <<chars;
}
띄어쓰기 포함 10글자를 입력했을 때 띄어쓰기 포함 9글자만 저장되어 출력된다.
문자열 마지막에 null 문자가 있기 때문이다.
"dddd dddd"(띄어쓰기 포함 9글자) + 문자열 마지막에 오는 null문자 = 총 10글자이다.
2. fgets 사용
fgets도 마찬가지로 null문자까지 포함해서 생각하므로 육안으로 띄어쓰기 포함 10글자를 입력하면 육안으로 9글자가 출력된다. null문자가 뒤에 숨어있으므로.
#include <iostream>
#include <vector>
using namespace std;
int main() {
char chars[10];
fgets(chars, 10, stdin);
cout <<chars;
}
728x90
'Algorithm > C++ 노트' 카테고리의 다른 글
C++ 같은 것이 있는 순열과 조합 : dfs(백트래킹), next_permutation으로 구현, 차이, 중복순열 중복조합 등 (1) | 2021.02.04 |
---|---|
C++로 정렬 알고리즘 sort 사용법, 내림차순, 특정 변수 기준 정렬(연산자 오버로딩, compare 함수 활용) (1) | 2020.12.30 |
[C++] string에서 특정원소의 위치 찾기 - find() (0) | 2020.08.11 |
hash_map | unordered_map | map 차이 비교, 특징 정리 - C++ (0) | 2020.07.07 |
STL 정리 - 개념과 컨테이너 종류 (0) | 2020.07.07 |
Comments