알고리즘/문제해결을 위한 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;
}
반응형