c - 为什么我的 ifdigit 出现故障

标签 c

有时,当我在 fgets() 中根本不输入任何数字时,我的 isdigit 条件仍然满足。不会一直发生但很少发生。为什么要这样做?这是代码。

void calculate(){

    char item_name[20];
    int i;

    printf("\nEnter Your Product:");
    fgets(item_name, 20, stdin);

    for(i=0; i<20; i++){
        if(isdigit(item_name[i])){
            Errorlevel("Input Has a Number");
        }
    }

    internet(item_name);

    return;
}

最佳答案

您没有初始化您的 item_name 数组,可能只是遇到可能存储在那里的垃圾,尤其是当您没有检查存储字符串的长度和您的 for循环遍历整个数组长度。

关于c - 为什么我的 ifdigit 出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42730991/

相关文章:

c - 无法解释的段错误

c - printf 和 memcpy 链接到标准 C 库

c++ - 如何在 AVX2 中实现车道交叉逻辑按位移位/旋转(左和右)

c - 如何使用 POSIX 线程在 C 语言中创建特定于线程的全局变量?

c - 使用 libcurl C/C++ 下载时卡住

c - 是否可以覆盖目标模块(gcc、ld、x86、objcopy)中的静态函数?

c - 从c中的stdin读取字符串

c - 删除后打印指针会在括号之间打印 null

c - 使用 C 套接字将文件从服务器传输到客户端的问题

c - 模拟 ls 命令的 Linux C 程序