해결된 질문
작성
·
845
0
<첫번째 질문>
(1) std::cin.ignore(32767, '\n');
(2) std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
1번은 매직넘버를 쓰기 때문에 좋지 못한 코드이고,
2번은 <limits> 를 #include 해야 하고, 길어서 타이핑이 불편합니다.
\n을 만날때까지 최대 32767 개 의 글자를 무시해라 라는 의미라면
ignore의 첫번째 매개변수에는 어떤 자료형의 signed 최대값이 인자로 들어가는구나 생각할 수 있습니다.
그 첫번째 인자로 INT_MAX 나 CHAR_MAX 같은 것을 사용하는건 어떻게 생각하시나요?
<두번째 질문>
INT_MAX 에는 2147483647 / CHAR_MAX에는 127 값이 들어있습니다.
제 생각엔 INT는 너~~무 많고(낭비), CHAR은 좀... 적은것 같습니다. 좀 더 넓었으면 좋겠습니다.
그렇다면 매직넘버를 사용하는 대신,
Short 자료형의 최대값인 32767을 short 변수를 만들어 저장한 뒤,
ignore함수의 첫번째 인자로 넣어주는 것 입니다.
위의 두 가지 방법에 대해서는 어떻게 생각하시나요?