C - scanf/printf 그대로 사용
C++ -
1. endl 대신 '\n'
버퍼(buffer): 임시 메모리 공간으로, 묶어서 한 번에 전달하므로 전송시간이 적게 걸리고 사용자의 수정이 가능하다.
버퍼가 가득 차면 내용물을 목적지로 보내는 완전 버퍼링 방식((fully buffered)과
입력된 문자 중 개행 문자가 나타날 때마다 버퍼 안의 내용을 목적지로 보내는 방식(line-buffered)가 있다.
endl: 개행문자 출력버퍼로 전송하기 + 출력버퍼 비우기
\n : 개행문자 출력버퍼에 전송하기
이때, 출력버퍼를 비우는 작업은 매우 느리므로 화면에 바로 보여지는 것이 중요하지 않은 경우에는 '\n'을 사용한다.
2. cin.tie(NULL)
cin과 cout의 묶음을 풀어 주어서 cin으로 읽을때 먼저 출력 버퍼를 비우는 작업을 방지한다.
입출력이 번갈아서 반복하는 경우에 유용하다.
3. ios_base::sync_with_stdio(false)
C와 C++의 버퍼를 분리한다.
버퍼가 분리되었으므로 C 입출력과 C++ 입출력을 동시에 사용하지 않도록 주의한다.
참고
'C,C++' 카테고리의 다른 글
C,C++] 구조체(struct) (0) | 2023.09.13 |
---|---|
C++] Stream I/O function(read, gcount, write) (0) | 2023.08.12 |
C++] Stream I/O function(get, getline, ignore,put) (0) | 2023.07.30 |
C++] Stream I/O (0) | 2023.07.30 |
C] 표준 입출력 방법 정리(scanf,printf,fgets,getchar,fgetc 등) (0) | 2023.07.19 |