这个总结时缘于暑假刷ACM的时候发现在不同的输入格式下有时候不知道怎么处理,甚至会影响后面对数据的处理方法的选择,容易卡住,然后把时间都花在百度“怎么输入带空格的字符串”等一系列初级问题。做个总结。
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的时候结束,比如</