728x90
cin
cin 은 개행문자(띄어쓰기, 엔터) 직전 까지 입력을 받습니다.
'나의 작은 개발자' 를 입력하면 띄어쓰기 이전 값인 '나의' 만 출력됩니다.
모두 출력하기 위해서는 `cin >> a >> b >> c;`로 수정하여 각각의 변수에 '나의', '작은', '개발자'를 저장하여 출력합니다.
#include <bits/stdc++.h>
using namespace std;
string a;
int main(){
cin >> a;
cout << a << "\n";
return 0;
}
scanf
입력형식이 까다롭거나 scanf를 사용해야 할 때 사용하는 게 좋습니다.
double 타입도 scanf를 이용하여 int 타입 2개를 만들어 받을 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int a, b;
double c;
int main(){
scanf("%d.%d", &a, &b);
printf("\n%d %d\n", a, b);
scanf("%lf", &c);
printf("%lf\n", c);
return 0;
}
getline
getline은 개행 문자까지 한꺼번에 입력을 받을 수 있습니다.
'엄준식 화이팅'을 입력하면 '엄준식 화이팅'이 출력됩니다.
#include<bits/stdc++.h>
using namespace std;
string s;
int main(){
getline(cin, s);
cout << s << '\n';
return 0;
}
아래와 같이 T개의 getline cin으로 받을지 설정한 후 T개 만큼 getline 입력이 들어오는 상황일 경우
다음과 같이 특정 문자열을 기반으로 버퍼플래시를 하고 받아야 합니다.
이유는 cin으로 입력 받을 때 개행 문자 직전까지 입력을 받게 되고 이에 중간에 위치한 버퍼에 \n이 남아있기 때문입니다.
#include <bits/stdc++.h>
using namespace std;
int T;
string s;
int main(){
cin >> T;
string bufferflush;
getline(cin, bufferflush);
for(int i = 0; i < T; i++){
getline(cin, s);
cout << s << '\n';
}
return 0;
}
cout
cout << {출력할 것} << "\n" 형식으로 출력하는 것이 일반적입니다.
'코딩화이팅! 나의 작은 개발자'로 출력됩니다.
#include<bits/stdc++.h>
using namespace std;
string a = "코딩 화이팅! ";
string b = "나의 작은 개발자";
int main(){
cout << a << " " << "" << b << '\n';
return 0;
}
cout의 실수 타입 출력
cout.precision({자릿수 + 1}) 을 하게 되면 소수자리 {자릿수} 까지 반올림하여 출력됩니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
double a = 1.23456789;
int main(){
cout << a << "\n"; // 1.23457
cout.precision(7);
cout << a << "\n"; // 1.234568
return 0;
}
printf
printf 는 형식(format)을 지정하여 출력할 때 좋습니다.
string str을 출력할 때 c_str() 함수를 걸어서 출력하는 부분은 printf 출력 시 주의할 부분입니다.
printf 기반 문자열 출력 시 string을 문자열에 대한 포인터(char *) 타입으로 바꿔주어야 하기 때문입니다.
문자열 출력 시 cout 을 권장합니다.
#include <bits/stdc++.h>
using namespace std;
int a = 1;
char s = 'a';
string str = "어벤져스";
double b = 1.223123;
int main(){
printf("아이엠어 아이언맨 : %d\n",a);
printf("아이엠어 아이언맨 : %c\n",s);
printf("아이엠어 아이언맨 : %s\n",str.c_str());
printf("아이엠어 아이언맨 : %lf\n",b);
return 0;
}