tips1:
默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱。正因为这个兼容性的特性,导致cin有许多额外的开销。
ios_base::sync_with_stdio(false);
tips2:
使用文件流改为输入流的方式提高测试效率:
freopen("test.txt","r+",stdin);
getchar(),gets(char str[])都无法解决\n的问题
如果输出必须为N位数,前面需要动态补充为0的话怎么办?
printf("%05d",t); // 输出五位数
要求输出为小数点后N位数的话怎么办?
printf("%.5d",t);
题目中的输入输出:
输入不知道多少组数据时:
while(scanf("%d",&a)!=EOF){
......
}
while(gets(str)!=NULL){
......
}
读取空格间断的数组:
输入格式为: 0 4 2 1 5
时怎么读取为数组?
while(scanf("%c",&k)){
if(k=='\n'){
break;
}
if(k!=' ')
{
input[i]=k-'0';
i++;
}
}
如果空格数量不定,而且数字也可能是多位数怎么办?
#include<stdlib.h> // 必须导入,这样才能用atoi函数
char key[10]; // 临时存放输入;
char detect; // 检测回车 '\n'
while(scanf("%s",&key)){
input[i]=atoi(key); // 字符串转数字
i++;
// 获取后面的一个输入缓存检测是否是 '\n'
detect=getchar();
if(detect=='\n'){
break;
// 跳出循环
}
}
如果想把空格也读取进去怎么办?
char input[N];
cin.getline(input,N);
string s=input;