CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

输入中的错误

楼主jobs002(Oh! Office)2006-03-03 11:14:55 在 C/C++ / C++ 语言 提问

void   Person::GetData()  
  {  
  cout<<"请输入个人详细信息:"<<endl;  
  cout<<"请输入您的姓名:";  
  cin.get(name,20);  
  cout<<"请输入你的年龄:";  
  cin>>this->age;  
  cout<<"请输入您的性别:";  
  cin>>sex;  
  cout<<"请输入您的电话号码:";  
  cin.get(telephone,30);  
  cout<<"请输入您的电子邮件地址:";  
  cin.get(this->EmailId,20);  
   
   
  }  
  当我在输入sex后,却没有提示电话号码的输入,请问原因?  
  问题点数:20、回复次数:13Top

1 楼jobs002(Oh! Office)回复于 2006-03-03 11:41:22 得分 0

高手帮帮忙  
  Top

2 楼cunsh(村少)回复于 2006-03-03 11:42:11 得分 0

你多贴几行呀Top

3 楼jobs002(Oh! Office)回复于 2006-03-03 11:45:24 得分 0

 
  class   Person  
  {     public   :  
              Person();  
              ~Person();  
              private:  
   
           
  }void   Person::GetData()  
  {  
  cout<<"请输入个人详细信息:"<<endl;  
  cout<<"请输入您的姓名:";  
  cin.get(name,20);  
  cout<<"请输入你的年龄:";  
  cin>>this->age;  
  cout<<"请输入您的性别:";  
  cin>>sex;  
  cout<<"请输入您的电话号码:";  
  cin.get(telephone,30);  
  cout<<"请输入您的电子邮件地址:";  
  cin.get(this->EmailId,20);  
   
   
  }  
  Top

4 楼zzw820626(偶要分,偶要星星)回复于 2006-03-03 11:50:01 得分 0

sex什么类型阿?Top

5 楼jobs002(Oh! Office)回复于 2006-03-03 11:57:28 得分 0

char   name[20];  
  int   age;  
  char   sex;  
  char   telephone[30];  
  char   EmailId[20];Top

6 楼zzw820626(偶要分,偶要星星)回复于 2006-03-03 12:05:14 得分 0

是不是输入了中文?Top

7 楼jobs002(Oh! Office)回复于 2006-03-03 12:10:48 得分 0

没有,最一般的情况,也没有输入空格  
  Top

8 楼jobs002(Oh! Office)回复于 2006-03-03 12:20:58 得分 0

#include   <iostream.h>  
  class   Person  
  {     public   :  
              Person();  
              ~Person();  
             
            void   GetData();  
            void   ShowData();  
        private:  
            char   name[20];  
            int   age;  
            char   telephone[30];  
            char   sex;  
            char   EmailId[20];  
           
  };  
  void   Person::GetData()  
  {  
  cout<<"请输入个人详细信息:"<<endl;  
  cout<<"请输入您的姓名:";  
  cin.get(name,20);  
  cout<<"请输入你的年龄:";  
  cin>>this->age;  
  cout<<"请输入您的性别:";  
  cin>>sex;  
  cout<<"请输入您的电话号码:";  
  cin.get(telephone,30);  
  cout<<"请输入您的电子邮件地址:";  
  cin.get(this->EmailId,20);  
   
  }  
  void   main(void)  
  {         Person   aMan;  
            aMan.GetData();  
   
  }  
  Top

9 楼willingbupt(buptcsdn)回复于 2006-03-03 12:41:50 得分 0

应该是cin.get()出了问题。你不用cin.get试试Top

10 楼zzw820626(偶要分,偶要星星)回复于 2006-03-03 13:06:30 得分 10

msdn上对get有这么一段解释:  
  After   the   function   extracts   an   element   that   compares   equal   to   _Delim,   in   which   case   the   element   is   put   back   to   the   controlled   sequence.    
  当遇到_Delim(默认   \n)时就返回,并把_Delim放回控制序列。  
  执行cin>>sex;后controlled   sequence中有一个\n  
  然后get()碰到\n返回,并且把\n放回controlled   sequence,  
  以后的get()同理。  
  可以这么修改:  
  void   Person::GetData()  
  {  
  cout<<"请输入个人详细信息:"<<endl;  
  cout<<"请输入您的姓名:";  
  cin.get(name,20);  
  cout<<"请输入你的年龄:";  
  cin>>this->age;  
  cout<<"请输入您的性别:";  
  cin>>sex;  
                    cin.get();                             //添加  
  cout<<"请输入您的电话号码:";  
                    cin.get();                             //添加  
  cin.get(telephone,30);  
  cout<<"请输入您的电子邮件地址:";  
                    cin.get();                             //添加  
  cin.get(this->EmailId,20);  
   
  }  
   
  Top

11 楼bjstcm(快毕业了~~~)回复于 2006-03-03 13:14:06 得分 2

楼上的可以,,  
  也可以使用cin.ignore();Top

12 楼tygfr(Try to do!)回复于 2006-03-03 13:32:45 得分 8

将所有的cin.get(NAME,ARSIZE)改成cin.get(NAME.ARSIZE).get();  
  这是换行符问题,在每次cin.get()后,换行符还是留在输入队列中,所以会出现第一次输入后再进行第二次输入不正常(此时换行符还留在输入队列中)。而cin遇到enter会结束输入Top

13 楼tygfr(Try to do!)回复于 2006-03-03 13:34:06 得分 0

使用cin.get(NAME.ARSIZE).get()来清空换行符Top

相关问题

  • 怎样解决中文IE6快速输入地址错误
  • Delphi中输入主键、外键时引起的错误
  • Delphi中输入主键、外键时引起的错误
  • “,”没有区分中英文输入方式 的错误
  • 时间输入错误!!
  • 输入法错误! 急!
  • 在CGI中,输入验证错误和来源验证错误有什么区别?
  • <<一个关于VC++6.0中输入输出重载的编译错误问题>>
  • 高手请进——100分:Delphi中输入主键、外键时引起的错误
  • 输入错误,请帮忙改正

关键词

  • sex
  • cout
  • getdata
  • age
  • person
  • controlled sequence
  • get
  • char

得分解答快速导航

  • 帖主:jobs002
  • zzw820626
  • bjstcm
  • tygfr

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo