| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1669 人关注过本帖
标题:关于缓存清除问题
只看楼主 加入收藏
lqqnjust
Rank: 1
来 自:江苏南通
等 级:新手上路
帖 子:52
专家分:0
注 册:2008-7-17
结帖率:100%
收藏
 问题点数:0 回复次数:4 
关于缓存清除问题
#include <iostream.h>
int Input()                                     //从键盘读取并进行缺省判断
 {
      int  n,m=0;
label:      n=cin.get();             //读取第一个字符进行判断
      if(n=='\n') m=100;      //若为回车,则缺省值为100
      else while(n!='\n')       //非回车,则将字符串转换为整数
      {
          if(!(n>'0'&&n<'9'))              //判断输入是否合法,否则提示重新输入
          {
              cin.clear();      //清空缓存
              char s[20];              
              cin.getline(s,20);      //接受原输入数据
              cout<<"非法输入,请重新输入:";  
              goto label;   //跳转重新输入
          }
          m=10*m+int(n)-48;     //将字符串转换为整数
          n=cin.get();               //循环读取
      }           
        return m;            //返回输入值,若无则缺省100
}

void main()
{
    cout<<"input";
    int n=Input();
    cout<<n;
}


我想在输入2esd时提示错误信息,然后重新输入。可是再输入3时。它显示的是21,请问如何能把一开始输入的2清除掉呢?
搜索更多相关主题的帖子: 缓存 
2008-10-05 10:34
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
竟然是要接受字符 n 为什么要定义为 int ...

2008-10-05 12:00
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
system("cls")//如果是windows 可以有cls清屏

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-10-05 12:57
lqqnjust
Rank: 1
来 自:江苏南通
等 级:新手上路
帖 子:52
专家分:0
注 册:2008-7-17
收藏
得分:0 
回复 2# blueboy82006 的帖子
我需要int型的.但输入时可能会有错误输入.用atoi函数可以增加容错型,防止死循环,同时也可判断第一个字符是否是回车

正在学习编程。希望各位不吝赐教,(*^__^*) 嘻嘻……
2008-10-08 08:39
lqqnjust
Rank: 1
来 自:江苏南通
等 级:新手上路
帖 子:52
专家分:0
注 册:2008-7-17
收藏
得分:0 
我已经换了一种方法来做,把这个问题跳过去了

正在学习编程。希望各位不吝赐教,(*^__^*) 嘻嘻……
2008-10-08 08:41
快速回复:关于缓存清除问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032503 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved