C++ gdb 터미널 출력 버그

Nitroblue 1·2025년 10월 4일

Computer Science Basics

목록 보기
5/16
int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int T;
    std::cin >> T;
    std::cin.ignore();

    while (T--) {
        std::string line, cmd;
        std::cin >> cmd;
...

이런 식으로 std::ios::sync_with_studio(false)std::cin.tie(nullptr)를 사용하면 잘 나온다.

  • std::ios::sync_with_studio(false)
    : C와 C++ 입출력 버퍼 동기화 해제 -> cin/cout 속도 향상.
    단, scanf/printf와 섞어 쓰면 위험.
  • std::cin.tie(nullptr)
    : 기본적으로 cincout과 묶여 있다. cin을 호출하기 전에 자동으로 cout.flush()(버퍼 비우기)를 해준다. 하지만 자동 flush는 불필요하게 자주 일어나서 속도를 떨어뜨린다.
    따라서, 위 명령어를 주면 cincout의 tie를 끊어준다.
    단, 입력 전에 출력이 즉시 화면에 안 보일 수도 있다.

0개의 댓글