cin.ignore
-
[bj 8958] c++, cin 다음에 cin.getline 사용할 시 cin.ignore() 해주기Programming 기초/Coding Test 2024. 7. 19. 16:29
https://www.acmicpc.net/problem/8958 동적할당을 이용한 문자열을 연습하기 위해 아래와 같이 코드를 짜보았다.#include using namespace std;int main(int argc, char **argv){ int n; cin >> n; cin.ignore(); for (int i = 0; i 주의해야 할 점cin은 버퍼에 '\n'이 남아있어서 cin.getline() 하기 전에 cin.ignore()로 버퍼를 비워주지 않으면 cin 직후의 cin.getline에 '\n'이 입력되어버린다.처음에는 아무생각없이 cin.getline 직전에 cin.ignore()를 적용했으나, cin.ignore()는 디폴트값이 버퍼의 1개를 지우는 것이므로 c..
-
[C++] cin.ignore와 버퍼에 대한 이해Programming 기초/C++ 2024. 6. 28. 19:31
cin cin은 character input의 약자로, 버퍼의 값을 읽어온다. 만약 버퍼에 읽어올 값이 없으면 표준입력스트림으로부터 입력을 받아와 버퍼에 저장하고나서 버퍼의 값을 읽어온다.입력을 받는다는 것이 아닌 버퍼를 먼저 읽으려고 한다는 관점이 중요하다.(버퍼는 자료구조 queue와 유사하다. 선입선출로 작동한다.) 'cin >>' 은 공백(스페이스, 탭, 줄바꿈)문자를 기준으로 끊어서 읽어오고, 공백문자는 무시한다.#include using namespace std;int main() { char name[100]; cout > name; cout 0. 버퍼에 다음과 같이 저장된다. [ j ] [ o ] [ h ] [ n ] [ ' ' ] [ n ] [ a ] [ n ] [ a ]..