gpt4 book ai didi

c - 在C中如何验证输入值只是正数?

转载 作者:行者123 更新时间:2023-11-30 14:33:22 25 4
gpt4 key购买 nike

我需要检查,如果用户输入一个值,则仅当该值是[1-8](含)之间的正整数时,程序才会运行,但如果输入值是字母或单词或未输入all(回车),程序再次要求输入

#include <stdio.h>


int main (){

int height;

do {
printf ("Height: ");
scanf ("%i", &height);
}

while (height < 1 || height > 8);

{ .
.
.
.

我正在考虑在 while 验证中添加另一个条件“||(或)”,例如 while“height”与整数不同(!=)”然后...

但我不知道如何在其他 StackOverflow 问题中检查该语句。希望您能赐教一下

最佳答案

使用fgets()

char buf[1000];
if (!fgets(buf, sizeof buf, stdin)) {
exit(EXIT_FAILURE);
}
if (buf[1] != '\n') exit(EXIT_FAILURE);
if (*buf < '1') exit(EXIT_FAILURE);
if (*buf > '8') exit(EXIT_FAILURE);
// use *buf, maybe (*buf - '0')

输入"<ENTER>" , "0<ENTER>" , "12<ENTER>" , "a<ENTER>" , "<SPACE>3<ENTER>" , ... 将失败退出

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com