| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6059 人关注过本帖
标题:如何让程序只允许用户输入_数字_的问题!!!
只看楼主 加入收藏
_Dennis_h
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2015-3-6
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:25 
如何让程序只允许用户输入_数字_的问题!!!
#include <stdio.h>
#include <ctype.h>

int main (void)
{
    int xy = 0;
        printf("\nThis progarm is build a Mult-sheet.");
   
    do
    {
        printf("\nPlase input a number for build the Mul-sheet : ");
        fflush(stdin);
        scanf("%d", &xy);   
    }
    while(isalpha(xy) || isspace(xy));

    for(int i = 1; i <= xy ; ++i)
    {
        for(int j = 1; j <= xy; ++j)
        {
            printf("\t%d", i*j);
        }
        printf("\n\n");
    }
    return 0;

}
搜索更多相关主题的帖子: include number 如何 用户 
2015-03-09 15:46
_Dennis_h
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2015-3-6
收藏
得分:0 
我写了一个简单的制作乘法表的程序。我希望用户只输入数字,所以我就利用do...while判断用户的输入。
问题来了!!
我定义的是整形变量xy,而isalpha()函数判断是否为字母必须要定义为char。但是定义为char后,我后面的for循环又不能正常工作了。
怎么样才能让程序只允许用户只输入数字呢?
我原来写汇编的,汇编很简单,一切都是十六进制,不分啥int、char什么的。。。
2015-03-09 15:50
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
你看 scanf("%d", &xy) 的返回值是否为1
2015-03-09 16:00
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
#include <stdio.h>

int main(int argc, char * argv [ ])
{
    int i,j,k;
   
    for(i = 1; i<= 9; i++)
    {
        for(j = 1; j <= i; j++)
        {
            k = j*i;
            printf("%d*%d=%-2d ",j,i,k);
        }
        printf("\n");
    }
    return 0;
}

授人以鱼,不如授人以渔
2015-03-09 16:33
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:10 
程序代码:
#include <stdio.h>
#include <string.h>

int main(void) {
    int i = 0, x;
    const char white[] = "1234567890";
    char input[80] = {0};
    char xstr[80] = {0};
    char *p = input, *end;
    fgets(input, 80, stdin);

    while(*p) {
        p += strspn(p, white);
        *p++ = '|';
    }

    for(p = input; *p != 0; p++) {
        if(*p != '|') {
            xstr[i++] = *p;
        }
    }

    x = strtol(xstr, &end, 10);

    printf("数字输入白名单版 X = %d\n", x);

    return 0;
}


Only the Code Tells the Truth             K.I.S.S
2015-03-09 16:51
执笔画江山
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:265
专家分:1010
注 册:2015-1-13
收藏
得分:0 
回复 5楼 longwu9t
这与乘法表 有什么关系么  不懂  求解

授人以鱼,不如授人以渔
2015-03-09 17:06
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
程序代码:
#include <stdio.h>

int main(void)
{
    char input[16] = {0};
    int num = 0;
    printf("请输入数字:");
    scanf("%10s", input);
    if (sscanf(input, "%d", &num) != 1)
        printf("你看看你输入的破数\n");
    else
        printf("你输入了%d\n", num);
   
    return 0;
}

2015-03-09 17:40
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用zklhp在2015-3-9 17:40:58的发言:

 
#include  
 
int main(void)
{
    char input[16] = {0};
    int num = 0;
    printf("请输入数字:");
    scanf("%10s", input);
    if (sscanf(input, "%d", &num) != 1)
        printf("你看看你输入的破数\n");
    else
        printf("你输入了%d\n", num);
   
    return 0;
}

你没法控制用户输入:用户喜欢输入什么就输入什么 但你可以在用户输入不对的时候嘲讽他
2015-03-09 17:42
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 6楼 执笔画江山
楼主的标题也没说一定要与乘法有关
我举的例子只是为了说明一下可以使用白名单的方法来过滤用户的输入

Only the Code Tells the Truth             K.I.S.S
2015-03-09 17:59
_Dennis_h
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2015-3-6
收藏
得分:0 
以下是引用执笔画江山在2015-3-9 16:33:37的发言:

#include <stdio.h>

int main(int argc, char * argv [ ])
{
    int i,j,k;
   
    for(i = 1; i<= 9; i++)
    {
        for(j = 1; j <= i; j++)
        {
            k = j*i;
            printf("%d*%d=%-2d ",j,i,k);
        }
        printf("\n");
    }
    return 0;
}

我写的是乘法矩阵,用户输入任意数字A,然后输出A行、A列的一个乘法矩阵,第i行与第j列上的数是i*j。
2015-03-09 20:02
快速回复:如何让程序只允许用户输入_数字_的问题!!!
数据加载中...
 
   



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

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