一般地来说,C语言和C++还是有一定区别的,比如在读入方面,C语言就采用了scanf("%d",&a);这种形式的读入方式,功能强大。C++则提供了cin和cout的两种流输入输出方式,但是相对于scanf而言还是满了许多。
因为使用getchar()最为快捷,所以竞赛中常常使用快速读入的方式来提高效率。
下面贴上代码(比较 简单明了,看得懂就行哈)
#include<stdio.h>
#include<iostream>
using namespace std;
int x;//最终得到的完整的输入数字
int read()
{
int f=1,ans=0;//f为符号标记,ans为最终读入的绝对值 ,记得ans一定要赋值为0,局部变量,都是乱码,为了这个调试半天(笑哭)...
char c;
c=getchar();
while(c<'0'||c>'9')//若c为符号
{
if(c=='-')
{
f=-1;//改变符号标记
}
c=getchar();//反复读入,直到读入数字为止
}
while('0'<=c&&c<='9')//若c为数字
{
ans=ans*10+c-'0';//将c从字符型修改为数字整型
c=getchar();
}
return ans*f;//加上符号标记
}
int main()
{
x=read();
printf("%d",x);
return 0;
}
这样就可以使用快速读入,利用char型的读入代替int型,getchar()速度更快,如何转换是关键,达到加速的效果。