Linux系统C语言接收输入时判断用户输入是否为数字

在Linux环境下,C语言编程时遇到需要确保用户输入为数字的场景。通过常规输入判断方法可能导致运行时段错误。解决办法是使用字符数组接收输入,并结合atof()函数进行数字转换,当输入非数字时给出提示。
摘要由CSDN通过智能技术生成

出现问题

在写C代码时,我遇到了需要输入数字但不能输入其他字符(如字母、特殊符号)的情况,如充值金额时,如果输入非数字需要给出提示。我刚开始使用常规的输入和判断方法:

scanf("%f", &num);
if(num <= 0)
{
   
	printf("不能输入非负数\n");
}

虽然能够编译通过,但会在运行时输入非数字字符会出现段错误(用valgrind调试时),所以这种方法肯定是不能用的。

解决方法

使用字符数组来进行判断,然后通过atof()函数转成float类型的数据,代码如下:

#include <stdio.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值