佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 988|回复: 5

C++有办法不让User输入太长的字吗?

[复制链接]
发表于 8-11-2006 12:43 PM | 显示全部楼层 |阅读模式
好像

char name[20];
int check;
do{
        check=0;
        cout<<"Please enter the name";
        cin<<name;
        if(strlen(name)>20){
                   cout<<"error";
                   check=1;
        }
}while(check==1);

有时我打长过很多的INPUT它会显示两次COUT 和ERROR。所以我想在USER打时直接阻止,有这样的CODE吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 8-11-2006 01:27 PM | 显示全部楼层
原帖由 城之内 于 8-11-2006 12:43 PM 发表
所以我想在USER打时直接阻止




  1. for (int i=0;i<MAXLEN &&c!='\n';i++)
  2. {
  3.                 c=getch();
  4.                 putchar(c);
  5.                 name[i]=c;
  6.                
  7. }


复制代码

[ 本帖最后由 tensaix2j 于 8-11-2006 02:13 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 8-11-2006 05:49 PM | 显示全部楼层
原帖由 tensaix2j 于 8-11-2006 01:27 PM 发表





for (int i=0;i<MAXLEN &&c!='\n';i++)
{
                c=getch();
                putchar(c);
                name=c;
               
}



不是很明白,可以解释一下吗?
回复

使用道具 举报

发表于 8-11-2006 10:40 PM | 显示全部楼层
嗯。。大致上的概念是。。 一个character一个character拿。。
那个代码我没测试的。。自己随需要改。。
回复

使用道具 举报

发表于 21-11-2006 10:33 PM | 显示全部楼层
可以試在你的code後面加上一句flush input buffer 的code
雖然是不好的programming practice 可是在下覺得蠻有用
不太記得是甚麼好像是cin.ignore(80, '\n')

char name[20];
int check;
do{
        check=0;
        cout<<"Please enter the name";
        cin<<name;
        if(strlen(name)>20){
                   cout<<"error";
                   check=1;
                   cin.ignore(80, '\n')
        }
}while(check==1);
回复

使用道具 举报

发表于 23-11-2006 11:42 AM | 显示全部楼层
原帖由 doomscythe 于 21-11-2006 10:33 PM 发表
可以試在你的code後面加上一句flush input buffer 的code
雖然是不好的programming practice 可是在下覺得蠻有用
不太記得是甚麼好像是cin.ignore(80, '\n')

char name;
int check;
do{
        check=0; ...




楼主想要的是"既时阻止"。。也就是不给user key in >20 characters在buffer...

所以只能character by character 拿。。
不然你一开buffer (any type of taking input,eg: cin,scanf, getc etc..) , user 不按enter的情况下, 你没办法check的。。

[ 本帖最后由 tensaix2j 于 23-11-2006 11:58 AM 编辑 ]
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-8-2025 06:55 PM , Processed in 0.121224 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表