gpt4 book ai didi

c - C语言中的用户输入过滤,例如避免字母和符号

转载 作者:行者123 更新时间:2023-11-30 18:43:05 25 4
gpt4 key购买 nike

我需要计算年龄,然后在 C 编程中如何在 scanf 中进行“用户输入过滤”。

 main()
{
scanf("%d %d %d ,month,date, year);
--------;
printf("your age is"...);
}

这里用户可以输入字母或一些符号,如何在c中过滤它们?

最佳答案

如果通过过滤,您的意思是删除有问题的字符,您可以读取缓冲区中的行并检查它们,或者使用像这样的快速技巧:

scanf("%d%*[^0-9]%d%*[^0-9]%d", &month, &day, &year);

其中%后面的*表示读取并丢弃,括号中的^0-9表示任何非0的字符到 9。 可能的陷阱:如果第一个字符不需要,则 scanf 失败。如果在开头放置%*[^0-9],则以数字开头的输入将失败。

或者,在失败时询问用户正确的输入(在前面的情况下,您还应该检查 scanf 的返回值):

while (scanf("%d %d %d", &month, &day, &year) != 3)
{
printf("bad input! Retry\n");
/* possibly flush the line: */
while (!feof(stdin) && fgetc(stdin) != '\n');
}

关于c - C语言中的用户输入过滤,例如避免字母和符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12842037/

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