출처 : C++ 실력 완성 올인원 패키지 Online(fastcampus)
#include <iostream>
using namespace std;
int main()
{
int a;
cin >> a; /* scanf("%d%',&a)
~ 함수 밖에 있는 값을 변경해주기 위해 주소값을 넘겨줘야 함
c++의 경우는 참조라는 것을 이용해서 인자를
넘겨주면 밖에 있는 변수도 함수 내부에서
변경이 가능함.
*/
cout << a;
}
// 입력이 성공했을 때만 출력
// 10 입력 성공
// a 입력 실패
int num;
if (cin >> num) // a를 넣으면 아무것도 출력되지 않음.
cout << num << endl;
// 입력 실패 처리
int num;
cin >> num;
cout << num << endl;
// 입력이 실패했을 경우 초기화 시켜준다.
if (cin.fail()) // 입력이 실패하면 fail 값이 1
cin.clear(); // 실패한 경우에는 cin을 초기화시켜줘야 그 다음 cin을 처리해줄 수 있음.
// 버퍼에 남은 문자 한 개를 무시
// cin.ignore();
// 개행 문자(or 특정 문자가 입력으로)가 나올 때까지 무시한다.
cin.ignore(numeric_limits<streamsize>::max(), '\n');
{
// bool 입력을 1/0로 받기
bool b;
cin >> b;
cout << b << endl;
// bool 입력을 true/false로 받기
cin.setf(ios_base::boolalpha);
cin >> b;
cout << b << endl;
}
{
// 16 진수로 입력 받기
int num;
// cin.setf(ios_base::hex) 는 세가지 이상의 flag가 존재하므로 두번째 파라미터를 넣어줘야 됨.
cin.setf(ios_base::hex, ios_base::basefield);
cin >> num; // 10 ~ 16진수의 10
cout << num << endl; // 16 ~ 10진수 값
cin >> hex >> num; // 10 ~ 16진수로 받기
cout << num << endl; // 16
}
#pragma warning(disable: 4996)
#include <iostream>
#include <limits>
using namespace std;
int main()
{
freopen("input.txt", "r", stdin);
int num;
cin >> num;
cout << num << endl;
}