버퍼란 임시 저장 공간이다. 버퍼는 데이터를 이동시킬 때 사용된다. 데이터를 키보드로부터 입력받고, 이를 잠시 버퍼에 저장한다. 그렇다면, 버퍼를 언제, 왜 사용하는가? 버퍼는 속도차이가 큰 두 대상이 상호작용하며 입출력을 할 때 사용된다. 예를 들어서, HDD에서 CPU로 데이터를 전송한다고 해보자. CPU는 초당 수억개의 비트를 처리할 수 있다.(속도가 매우 빠름) 하지만 HDD는 데이터 전송 속도가 CPU의 처리 속도에 비해 매우 느린 편이다. HDD가 초당 5개의 데이터를 전송할 수 있고, CPU가 초당 100개의 데이터를 처리할 수 있다고 가정한다면, CPU의 능력에 비해, HDD에서 전송되어 오는 데이터의 양은 너무나 작다. 여기서 95만큼을 더 처리할 수 있지만, CPU는 빈둥빈둥 놀게되는 ..
문자열을 입력받거나 혹은 데이터를 입력받을때 scanf()와 gets()를 주로 사용한다. gets()는 공백문자를 포함하는 한줄의 문자열을 읽는다. 그리고 엔터키, 즉 줄바꿈문자('\n')는 포함되지 않으며 자동으로 NULL문자('\0')를 추가한다. 그리고 buffer라는 저장소에 저장된다. 반면에 scanf()는 하나의 단어밖에 입력받지 못한다. 공백을 포함하지 못한다. 표준입출력함수 printf, scanf, putchar, getchar, puts, gets같은 것들은 '표준 입출력 함수'라고한다. 이런 표준 입출력 함수를 사용할 때는 buffer라는 것을 제공받게 된다. 그렇다면 buffer는 뭘까?buffer란 여분의 임시 메모리 공간이다. 우리가 scanf, gets함수를 써서 데이터를 입..