C程序反汇编的问题
学完了汇编语言,想从汇编的角度去分析以前遇到的问题:#include<iostream.h>
int main()
{
int m, n;
cin>> m;
cin>> n;
return 0;
}
这个程序本身没有问题,但是如果在输入m时输出了错误字符,不是整数,然后按回车,程序不会执行输入n的步骤了,我在VC++6.0里面反汇编,然后找了好久也没找出个所以然,求分析
你需要单步步入跟进那个调用istream::operator,才看的到
cin记录了一个输入正确和错误状态,并且当状态为错误的时候,下次还会依然从流继续读取i的值,而这时候流里面保存的值依然为'a',所以这样就会变成死循环。 看看,呵呵。谢谢了啊。。。 看看。。。。。。。。
页:
[1]