gpt4 book ai didi

c - 在 C 的 scanf 中禁用数字以外的字符

转载 作者:行者123 更新时间:2023-12-02 22:22:12 26 4
gpt4 key购买 nike

我遇到的问题是,我想禁止用户在我的程序中放置字符而不是数字,并可选择打印消息“已禁用”。它应该询问同一个变量的值。我试着用这个来做到这一点:

scanf(" %[0-9]d",&x);

还有这个:

else
result = scanf("%*s");

但是还是不行。我应该寻找什么?我在互联网上搜索过,但我只找到了使用 cin 的 C++ 解决方案,不幸的是它在 C 中根本不起作用。

最佳答案

你可以尝试这样的事情:

char c[SIZE];
int i;

// While the string is not a number
while(fgets(c, SIZE , stdin) && !isAllDigit(c));

isAllDigit 在哪里:

int isAllDigit(char *c){
int i;
for(i = 0; c[i] != '\0' && c[i] != '\n'; i++) // Verify if each char is a digit
if(!isdigit(c[i])) // if it this char is not a digit
return 0; // return "false"

return 1; // This means that the string is a number
}

关于c - 在 C 的 scanf 中禁用数字以外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556846/

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