输入输出技巧
scanf输入解析
可以在输入是直接获取格式
1 2 3 4 5 6 7 8 9 10 11 12
| #include <iostream>
using namespace std;
int main() { int num1,num2; scanf("&d-&d",&num1,&num2); printf("%d-%d",num1,num2); return 0; }
|
scanf和get的区别
get遇见空格不会停止读入
getchar和putchar
获取单个字符和输出单个字符,使用在scanf和get用于消除回车的影响
输入进制转换
1 2 3 4 5 6 7 8 9 10
| int main() { int a = 10; printf("%x\n",a); #小写十六进制 printf("%X\n",a); #大写十六进制 printf("%o\n",a); #八进制 return 0; }
|
输出加前导零
1 2 3 4 5 6
| int main() { int a = 10; printf("%04d\n",a); return 0; }
|
保留小数
1 2 3 4 5 6
| int main() { double a = 10; printf("%.2lf\n",a); return 0; }
|
若想有小数时才输出小数,没小数的话输出整数
longlong的使用
如果超出int(-1e91e9)即10 0000 0000(10 亿),就能使用longlong(-1e181e18)
头文件技巧
万能头文件
1
| #include <bits/stdc++.h>
|
数组使用技巧
输入数组时少用%c,而是用%s,因为%s不会读取换行符
要注意三点
- 数组要定义成全局的
- 读取的时候不要用%c,会读入回车,要使用%s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <iostream>
using namespace std;
char arr[10][10]; int main() { int n=2; for(int i=1;i<=n;i++){ scanf("%s",arr[i]+1);
} for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ printf("%c",arr[i][j]); } printf("\n"); } return 0; }
|