관리 메뉴

Storage Gonie

(2) C++ 입출력 문법 본문

알고리즘/문제해결을 위한 C++ 공부

(2) C++ 입출력 문법

Storage Gonie 2019. 4. 18. 16:44
반응형

# cin, cout 을 이용하는 경우

#include <iostream>

using namespace std;

int main(void)
{
    // cin, cout 사용시 아래 줄을 포함시키면 scanf, printf 속도와 비슷하게 입출력을 할 수 있다.
    // 단, 이를 추가한 뒤에는 cin/scanf, cout,printf 를 혼용해서 사용하지 말자.
    ios_base::sync_with_stdio(false);

    int a = 0;
    int b = 0;

    cin >> a >> b;
    cout << a + b << endl;
}

 

# scanf, printf 를 이용하는 경우

#include <iostream>

using namespace std;

int main(void)
{
    int a = 0;
    int b = 0;

    scanf("%d %d", &a, &b);
    printf("%d\n", a + b);
}

 

# 두가지를 섞어서 이용하는 경우

* 이 경우에는 ios_base::sync_with_stdio(false) 를 사용하면 안된다. 그 이유는 아래와 같다.
   위 문장의 단어들 각각은 ios_base: cin, cout 등을, sync: 동기화하다를,
   stdio: printf, scanf, getchar, fgets, puts, putchar 등을 의미한다.
   즉, ios_base::sync_with_stdio(false)는 ios_base와 stdio와의 동기화를 하지 않음을 의미한다.

   따라서, 동기화를 false 시킨 이후에는 cin / scanf를 같이 쓰거나 cout / printf를 같이 쓰면 문제가 발생할 수 있다.

#include <iostream>

using namespace std;

int main(void)
{
    int a = 0;

    cin >> a;
    printf("%d\n", a);
    
    scanf("%d", &a);
    cout << a << endl;
    
}

 

반응형
Comments