%hhu //unsigend char
%hhi,%hhd //sigend char
%hu //unsigend short
%hi,%hd //sigend short
%d //signed int
%ld //long Int
%lld //long long Int
%u //unsigned int
%f //float
%lf //double
%c //character
%s //character array (string)
%o //octal (8진수)
%x //hexadecimal (16진수 알파벳은 소문자)
%X //hexadecimal (16진수 알파벳은 대문자)
% //% (\%로 출력이 되지 않고 %%로 출력이 된다)
\u250C //Unicode 250C
Printf
printf("%2d", value); //출력하는 자리수를 지정
printf("%02d", value); //자리수를 설정하고 자리수의 빈칸을 0으로 출력
printf("%.11lf", value); //소수점 이하 11자리까지 출력된다.
Scanf
//사용자 설정 형식을 입력 받는 경우
//Scanf는 지정한 형식에 따라 입력을 받는 함수이기에
//이 형식또한 우리가 설정할수있다, 오직 서식문자만이 아닌 밑처럼 형식을 변형해서 받을 수 있다.
scanf("%d:%d", &h, &m);
/*input*/ /*input*/ /*input*/ /*input*/
//12:243 //12 :243 //12: 243 //12,243
/*output*/ /*output*/ /*output*/ /*output*/
//a = 12, b = 243 //a = 12, b = error//a = 12, b = 243 //a = 12, b = error
//////////////////////////////////////////////////////////////////////
//숫자 한자리만 입력받는 경우
scanf("%1d", &a);
/*input*/
//12344432
/*output*/
//a = 1
//////////////////////////////////////////////////////////////////////
//공백문자를 패스하고 입력받는 경우
scanf(" %d %d", &a, &b);
/*input*/
// 23 123
/*output*/
//a = 23, b = 123
//////////////////////////////////////////////////////////////////////
//1. 이 방법은 구분기준이 문장이 될수 없고 문자만 가능!
#include <sstream>
string result = "";
stringstream ss("Hi Hello!! My Name");
string token = "";
const char delimiter = '!';
while (getline(ss, token, delimiter))
{
cout << token << endl;
}
//////////////////////////////////////////////////////////////////////
//2.구분기준이 문장이 가능
string line = "Hi Hello ※※ My ※※ Name";
string delimiter = "※※";
int pos = 0;
//★ pos = line.find(delimiter)는 연산 순서 때문에 무조건 괄호로 감싸줘야한다! ★
while ( (pos = line.find(delimiter)) != string::npos)
{
cout<<line.substr(0, pos)<<endl;
line.erase(0, pos + delimiter.length());
}
//substr 처음 인덱스부터 끝 인덱스를 지정해주면 그만큼 문자열에서 가져온다.
//erase 지정 인덱스부터 지정 길이만큼 문자 삭제
문자가 숫자인지 아닌지 판별
#include <cctype>
//isdigit(char)의 반환 값이 0이면 문자이고 아니면 숫자임
//문자 하나하나씩 판별해가는방식
string str = "1233BVBBA";
for (int i = 0; i < str.length(); ++i)
{
if (isdigit(str[i]) == 0) cout << "문자임";
else cout << "숫자임";
}
//자리수를 6자리 넘어가는것은 6자리 까지 맞춰준다는 뜻
cout.precision(6);
cout << 12344325534; //12344325534 출력 - 소수점이 들어가지 않으면 효과가 없다.
cout << 12344325534.0f //1.23443e+9 출력 - 소수점이 들어가는 순간 지수로 표현하여 자리수를 맞춤
cout << 1234.0f //1234.0 출력 - 자리수 미만이라면 그대로 출력
//지정했던 precision을 소숫점에서 사용한다는 뜻 (바로 이전에 사용했던 precision으로 설정됨
cout << fixed;
cout << 3334.221f; //3334.220947 출력 - 소숫점이 6자리로 고정 됨