cin cout进制用法
cout<<hex<<i<<endl; //输出十六进制数(这输出字母的时候输出的是小写字母)
cout<<oct<<i<<endl; //输出八进制数
cout<<dec<<i<<endl; //输出十进制数
// 输出16进制, setbase(int)可以设置8等。
cout << setbase(16) << i << endl;**
printf("%#o %#X",i,i);输出带前导的八进制和十六进制
printf("%o %X",i,i);输出不带前导的八进制和十六进制
cout.setf(ios::hex,ios::basefield);//设置十六进制显示数值
cout.setf(ios::showbase|ios::uppercase);//设置0x头和大写
例题一
#include<iostream>
using namespace std;
int main() {
long long a,b;
cin>>hex>>a;//以十六进制读入
cin>>oct>>b;//以八进制读入
cout << dec << a+b << endl;//输出十进制的值
return 0;
}
例题二
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int i=1234;
cout.setf(ios::showbase|ios::uppercase);//设置0x头和大写
cout<<oct<<i<<" ";
cout<<hex<<i<<endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int i=1234;
printf("%#o %#X",i,i);//加#是为了输出前导0和0X
return 0;
}
scanf printf指定读入读出域宽
通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;
通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。
例题
例题
主要关注他的输入输出方式
#include <bits/stdc++.h>
#define pi acos(-1)
#pragma GCC optimize(2)
#define endl '\n'
#define jz cout.setf(ios::showcase|ios::uppercase);//进制前缀
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
typedef long long ll;
using namespace std;
{
IOS
int a,b,c;
scanf("%4d%2d%2d",&a,&b,&c);
printf("year=%d\nmonth=%02d\ndate=%02d\n",a,b,c);
return 0;
}