如何判断scanf()输入是int型、正整数

原创 2016年06月01日 13:35:22

scanf()也有返回值,输入正确时,返回正确读入的参数个数,且为int 型;无参数正确读入或文件末尾错误,返回0或EOF;

利用其返回值判断输入是否为int,若输入为字母、小数或其他特殊符号退出循环,代码如下:

int main(void)

{

int status, num = 1;

printf(" Please input  a integer number: \n ");

status = scanf("%d", &num);

while(status == 1)

printf(" num = %d \n ",num);

printf(" Please input another integer number: \n ");

status = scanf("%d", &num);

}

printf("Done!\n");

return 0;

}

以上代码只能判断输入为int型,可通过添加判断语句限制输入为正整数;

while(status == 1 && num > 0)



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

判断scanf接收的数据是否为一组纯数字

Nov.15,2014     为了程序的健壮性,我们需要检查scanf函数接收的数据是否符合输入要求,并提示用户重新输入正确的数据。     以判断输入是否是正整数为例,有以下几种方法:   ...

java-----------华为机试----------求int型正整数在内存中存储时1的个数 (水题for java)

题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。 输入描述:  输入一个整数(int类型) 输出描述:  这个数转换成2进制后,输出1的个数 输入例子: 5...

数字(int型范围内正整数)和中文的相互转换

数字(int型范围内正整数)和中文的相互转换

牛客网_华为机试_015_求int型正整数在内存中存储时1的个数 (十进制转二进制)

题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。 输入描述:  输入一个整数(int类型) 输出描述:  这个数转换成2进制后,输出1的个数 示例1 输入...

从键盘上输入任意的正整数,编程判断该数是否为回文数。 所谓的回文数就是从左到右读这个数与从右到左读这个数是一样的。 例如,12321 , 4004都是回文数。

/* 从键盘上输入任意的正整数,编程判断该数是否为回文数。 所谓的回文数就是从左到右读这个数与从右到左读这个数是一样的。 例如,12321 , 4004都是回文数。 */#in...

从键盘输入三个正整数,判断它们是否构成等腰三角形

設計思路:由三角形成立的条件来判定给出的三条边是否能构成三角形,再由等腰三角形的判定条件来判定此三角形是否为等腰三角形。程序如下: /* cj6.c   从键盘输入三个正整数,判断它们是否构成等腰...
  • cjbxcl
  • cjbxcl
  • 2015年03月08日 12:56
  • 479

Java:计算回文数,输入一个五位正整数,使用数组判断它是不是回文数

package com.jredu.ch05; import java.util.Scanner; public class Work2 { public static void main(S...

项目39.4-1输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。

任务和代码:输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数,正着看、倒着看,是同一个数)。 /* 文件名:main.c 作者:小风景 完成日期:2015.10.22 问题描...

判断输入的一个非负的正整数,其是否是2的幂

/** 判断输入的一个非负的正整数,其是否是2的幂 */ #include #include #include using namespace std; #define max -1 /*...
  • leo115
  • leo115
  • 2012年09月24日 14:08
  • 1116
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何判断scanf()输入是int型、正整数
举报原因:
原因补充:

(最多只允许输入30个字)