none
VC++代码运行问题 RRS feed

  • 问题

  • #include<iostream>
    using std::cout;
    using std::cin;
    using std::endl;
    class CRecord
    {
    public:
     int getRecord();
     void putRecord();
    private:
     char name[15];
     int value;
    };
    int CRecord::getRecord()
    {
     cin.getline(name,15,'\n');
     cin>>value;
     return value;
    }
    void CRecord::putRecord()
    {
     cout<<endl
      <<name
      <<","
      <<value
      <<endl;
    }
    void main()
    {
     CRecord crecord;
     CRecord* crd=&crecord;
     while(true)
     {
      if(crd->getRecord()!=0)
             crd->putRecord() ;
      else
       break;
     }
    }

    上面这段代段代码原意是:创建类及函数,输入14个以下字符的名称以及一个整数并输出,直到输入0时结束。为什么我第二次输入字符后,不再可以输入数,而一直在死循环?


    2012年7月29日 18:11

答案

  • 请将你的getRecord函数修改成如下这样:

    int CRecord::getRecord() 
     {
    	 cin.getline(name,15,'\n');
    	 cin>>value;
    
    	 cin.clear();
    	 cin.sync();
    	 
    	 return value;
     }


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年7月29日 23:28
    版主

全部回复

  • 请将你的getRecord函数修改成如下这样:

    int CRecord::getRecord() 
     {
    	 cin.getline(name,15,'\n');
    	 cin>>value;
    
    	 cin.clear();
    	 cin.sync();
    	 
    	 return value;
     }


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年7月29日 23:28
    版主
  • 我现在正处于学习价段,我主要想知道为什么,老师可以为我解释一下吗?

    2012年7月30日 2:50
  • 你好,

    您的新问题已经开了新帖,这里我会把开始问题的答案标记出来。

    如果您有不同的意见,请取消表为答复。

    谢谢您的理解。

    此致


    Elegentin Xie [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月7日 3:01
    版主