豪翔天下 发表于 2013-10-10 00:23:00

C程序反汇编的问题

学完了汇编语言,想从汇编的角度去分析以前遇到的问题:
#include<iostream.h>
int main()
{
        int m, n;
        cin>> m;
        cin>> n;
        return 0;
}

这个程序本身没有问题,但是如果在输入m时输出了错误字符,不是整数,然后按回车,程序不会执行输入n的步骤了,我在VC++6.0里面反汇编,然后找了好久也没找出个所以然,求分析

福禄娃娃 发表于 2013-10-10 07:53:33

你需要单步步入跟进那个调用istream::operator,才看的到
cin记录了一个输入正确和错误状态,并且当状态为错误的时候,下次还会依然从流继续读取i的值,而这时候流里面保存的值依然为'a',所以这样就会变成死循环。

21066537 发表于 2013-10-10 08:54:30

看看,呵呵。谢谢了啊。。。

baby520 发表于 2013-10-10 18:27:33

看看。。。。。。。。
页: [1]
查看完整版本: C程序反汇编的问题