如何getchar()函数输出

gup*_*r54 0 c++ getchar

我想了解getchar()函数在这里如何工作?

我读取了getchar()返回的下一个字符stdin,或者EOF到达了文件末尾。

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    int decimal;
    while(!isdigit(decimal=getchar()));
    cout<<decimal;
}
Run Code Online (Sandbox Code Playgroud)

我输入25。输出50。我不明白为什么?怎么给50。

Fra*_*eux 8

getchar()从输入流中读取单个字符并返回其值。在您的情况下,这就是字符'2'。大多数实现(包括您的实现)都使用ASCII编码,其中字符'2'具有value 50decimal因此,分配给的值是50。由于decimalint,因此std::cout将其解释为数字值并进行相应打印。

  • @Chipster好吧,UTF-8的前128个字符对应于ASCII编码。我知道大多数实现都与ASCII兼容,但是我不确定其中的哪一部分是UTF-8或ASCII。 (3认同)