输入输出
1. 输入多个整数
a. 如果是一次输入,存完然后再统一处理,一般就scanf("%d %d",&a,&b);输入a和b时用空格或回车都可以,因为
scanf不识别空格和回车!
b. 如果是多次输入,输入一次处理一次输出一次(一般是这种模式),就需要循环的输入。比如一次输入两个整数,那么可以是:
while(scanf("%d %d",&a,&b) == 1)
{ //处理数据}
这种模式缺点在于,停不下来,因为每次输入完回车并不代表结束,因为scanf不识别回车,它会处于一直等待的状态。必须用^Z+回车来结束输入。(VC6.0有时候需要^Z后按两次回车才结束)
c. 最好是约定比如输入0,0的时候结束,比如
while(scanf("%d %d",&a,&b) == 1 && !(a || b) )
d. 如果用C++,用cin很方便:
cin>>a>>b;
while(cin>>a>>b) {}
cin也是不识别空格和回车,可以理解为和scanf同种性质输入流。
2. 输入字符串
a. 输入一字符串,然后处理各字符(即边输入边处理)。比如UVA272,碰到"换成``和‘’。
int c; //注意是int
while( (c = getchar()) != "\n"