有没有办法将值从 getchar() 更改为 C 中的整数?

Is there a way to change the value from getchar() into an integer in C?

我正在用 C 编写一个程序,它将请求响应,然后使用数字的第一次出现(使用 isdigit() ),然后将其分配给一个变量供以后使用。经过一些测试后,我意识到它采用的是 10 的 ascii 值,这是换行符。这是代码片段。

    while(isdigit(ch) == 0){
                ch = getchar();
        }
        ch = getchar();
        star = ch;//value is being detected as 10, which is line feed.

我在将 ch 分配给 star 时尝试将其强制转换为 int,这并没有改变结果值 10。我的问题是在 ch 的分配范围内,还是语法不正确?

你的问题是你看到一个数字,然后你读下一个字符

    while(isdigit(ch) == 0){
            ch = getchar();
    }
    ch = getchar(); <<<======

就用你已有的ch中的值,加上你需要把'0'转换成0,不是一回事

    while(isdigit(ch) == 0){
            ch = getchar();
    }
    int inp = ch - '0';