提示输出错误,有如下两个可能情况:
1. 不符合题目给出的输出格式,自己输出了多余的内容或者格式不正确
2. 输入数据的时候,未考虑到输入错误的情况
针对2,有如下的例子:
错误的情况:
1 int main(){ 2 3 int i = 0; 4 int re =0; 5 6 // while(scanf("%d",&i) != EOF){ 7 while(1){ 8 9 cin>>i; 10 if(i < 1 || i > 1e+9) 11 break; 12 re = gupiao(i); 13 cout<<re<<endl; 14 } 15 return 0; 16 }
上面的输入未判断输入的数据这确,如要输入一个整数,但是输入的却是一个字符,因此,出现上面提示的OLE错误。
更改如下,下面的两个例子都是正确的:
例1
1 int main(){ 2 int i = 0; 3 int re =0; 4 5 //while(scanf("%d",&i) != EOF){ 6 while(cin>>i ){ 7 if(i < 1 || i >1e+9) 8 break; 9 re = gupiao(i);//函数调用 10 cout<<re;//输出结果 11 } 12 return 0; 13 }
上面的输入自动的判别了输入的正确与否,输入与预期格式不匹配反过来将导致表达式cin>>i的返回值为false,因此while循环被终止。
例2
1 int main(){ 2 int i = 0; 3 int re =0; 4 5 while(scanf("%d",&i) != EOF){ 6 re = gupiao(i);//函数调用 7 cout<<re;//输出结果 8 } 9 return 0; 10 }
这种输入方法也是正确的,如果错误的话,就返回EOF,直接返回了,不会调用while循环体中的gupiao函数。