大哥们看一下,给我说说,为什么出错了

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:51:42
程序段如下
#include<iostream>
using namespace std;
void main()
{
for(int n=0;n<100;n++)
{int a;
cin>>a;
cout<<a;}
}
这个简单的循环,我如果每次输入整型变量,就会正常
但我输入字符或字符串 就会出现很奇怪的事 也没有说程序出错;
感觉就是她一下就把这一百次循环都执行了
我知道整型不能用字符串赋值 但系统也没有禁止呀

是你定义的a为int型, 而你输入的时候输入字符。
那么cin>>a,这条语句就不能成功执行。也就是你输入的字符没有被接收,还保存在缓冲区。当然你的缓冲有字符(相当于你已按了键盘上的键),那么你的cin语句就能执行(只是不能把你输入的字符取走),所以就一直循下去只到n==99,时才会停

有些问题是隐含问题

比如一个错误程序,系统也没用禁止,但是他会无限执行下去

C++对类型的规定还算严格

…… (int*)a 你shi mei shi zhao chou xing