C语言中怎么要求输入的必须是整数

[复制链接]
查看11 | 回复5 | 2016-1-5 19:00:34 | 显示全部楼层 |阅读模式
要输入一类编号,准备弄个错误提示,必须输入的是整数,选择语句怎么要求呢

回复

使用道具 举报

千问 | 2016-1-5 19:00:34 | 显示全部楼层
只能通过在程序运行时提示输入整数。在读取中,C语言可以做有限度的判断。如int a;if(scanf("%d",&a)!=1)可以判断出是否成功读到了一个整型的输入。这种判断方式,对于错误输入,如输入字母等,可以得出结果。但并不稳妥。比如当输入12asbc时,scanf会截取12输入整数,并不会识别出错误。又如,当输入为实数123.4556时,123会被成功读取。所以,在C语言中,并不能靠输入完全判断是否为合法整数,此项只能靠提示进行约定。
回复

使用道具 举报

千问 | 2016-1-5 19:00:34 | 显示全部楼层
在VC6.0下编译通过。#include #include /*函数说明:输入整数功能说明:num为输入位数,输入数放入n中*/void scanfnum(int *n,int num){ char ch; *n=0; for(int i=0;i<num;i++)
回复

使用道具 举报

千问 | 2016-1-5 19:00:34 | 显示全部楼层
先用字符串读取,若有 . 符号时说明它输入的不是整数 提示错误若没有读到 . 符号说明是整数,把字符串转化成整数
回复

使用道具 举报

千问 | 2016-1-5 19:00:34 | 显示全部楼层
int getint(){int tem;char s[8];//int 最大是5位数,所以只用了8个字节while(1){printf("\n输入整数:");fgets(s,5,stdin);//标准输入最长5个字符if(tem=atoi(s))return tem;}}这样在你程序中可调用这个输入整数函数,当不
回复

使用道具 举报

千问 | 2016-1-5 19:00:34 | 显示全部楼层
循环输入 用getchar() 每次判断输入的是不是数字0到9之间 再设一个输入结束标志 比如输入回车就跳出循环
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行