gpt4 book ai didi

c - 如何确定c中的无效输入

转载 作者:行者123 更新时间:2023-11-30 21:33:43 24 4
gpt4 key购买 nike

我想采用 float 输入,但如果用户输入字符,它将显示无效输入,我在网上没有找到具体的答案。它是如何完成的?

最佳答案

虽然 scanf 可以安全地解析 double ,但许多编译器已弃用它(有充分的理由),因为它在解析字符串时不安全。此外,如果解析失败,您将在输入缓冲区中留下残留物,并且您必须自己刷新它。

出于这些原因,更喜欢像 fgets 这样的函数,它检查其提供的缓冲区的长度,然后是像 strtodsscanf 这样的函数> 进行转换。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
char buf[64];

/* read */
if (fgets(buf, sizeof buf, stdin)) {
/* convert */
char *err;
double d = strtod(buf, &err);
if (*err) {
puts("entry invalid");
} else {
printf("you entered %lf", d);
}
}

return 0;
}

关于c - 如何确定c中的无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222667/

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