c - 如何验证输入是数字?

标签 c input

我有一个任务,用户必须一个接一个地输入四个输入。他们是: 字符、 float 、 float 、整数。

主要问题是如何检查错误并确保所使用的输入有效?

我已经完成了字符部分,但是对于 float 和整数,我如何检查只输入了数字并在输入字母或符号时打印错误消息?

可能是 isdigit()isaplha() 但不确定如何实现它们的使用。

注意我已经使用 scanf() 作为输入但不确定如何检查输入是否有效?

最佳答案

如果要求用户输入一个字符串,两个 float 和一个整数,使用

 char s[1024];
 float f1, f2;
 int i;

 if (sscanf (buff, "%s %f %f %d", s, &f1, &f2, &i) == 4) {
    /* Could scan values as expected. */
 } else {
    /* Input not as expected. */
 }

因为 sscanf 返回成功扫描值的数量。有关详细信息,请参阅 sscanf 手册页。请注意,使用 %s 扫描无界字符串在大输入时会出现问题。这可能不是家庭作业的问题,但绝对是生产软件中需要注意的事情。

关于c - 如何验证输入是数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12368403/

相关文章:

android - 如何正确设置 EditText 的 InputType?

c - 使用 proc 的内核模块程序

c - 初始化丢弃限定符... sdl 警告

c - 使用malloc和直接初始化到堆栈在内存空间方面的区别

Java - 从txt文件读取并存储在数组中

html - 从 CSS 禁用文本区域

c - 字数统计程序不起作用。代码示例来自《The C-programming Language》一书 Ritchie & Kernighan

c中的字符比较段错误

java - Android 多点触控 - TouchMove 事件中的 IllegalArgumentException

php - 在 php 中上传 docx、zip、rar、pdf、ppt