C++的输入和输出
本文作者frankchenfu,blogs网址http://www.cnblogs.com/frankchenfu/,转载请保留此文字。
C++是一种常用的编程语言。一个完整的程序至少要有一个输出,而我们也经常需要在程序内进行大量输入和输出。所以今天,我和大家谈一谈输入和输出。
1、cin和cout。可以连续输入,使用流(>>)。有专门的输出的换行“endl”。
cin>>a>>b; cout<<"asdasdasd"<<endl;
2、scanf和printf。scanf和printf虽然需要占位符,不是很方便,而且容易因为系统影响在评测时莫名出错,但是它的效率大幅超过了cin和cout。
scanf("%d%lf",number,score); printf("%d\n",rank);
3、getchar和putchar。getchar和putchar本是字符的输入和输出,但是因为快,所以更经常用于输入输出优化。下面的代码是针对全体整数的(输出需要自己输出时改符号哦)。
int s() { char ch=getchar(); int re=0; bool fl=1; if(ch=='-') { fl=0; ch=getchar(); } while(ch>='0'&&ch<='9') { re=re*10+ch-'0'; ch=getchar(); } return fl?re:-re; } void w(int r) { if(r>9) w(r/10); putchar(r%10+'0'); }
没有负号?更简单:
int s() { char ch=getchar(); int re=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') { re=(re<<3)+(re<<1)+ch-'0'; ch=getchar(); } return re; }
当然,也可以用于字符的输入输出。例如,
a=getchar(); putchar('\n');
4、gets和puts,以及getline。
这些都是针对字符串的,在写高精度的时候也会用到。需要注意的是,puts是包括输出一个换行符的,也就是说,如果输出后不想换行,只能使用printf("%s",……)了。
gets(a1); puts("asdasdasd"); getline(cin,s1);
希望对大家有所帮助,谢谢。