我有一个名为input.in的文件。我需要读取数字并将其存储在无符号char类型的变量中。我读了数字并在屏幕上打印了变量的内容,我看到它是正确的(打印1)。但是,if语句失败。它将False打印到标准输出。为什么会这样?如何将该数字存储到一个无符号的char变量中?

input.in文件:

asus@ubuntu:~/Desktop$ cat input.in
1


我在Ubuntu上工作。 sizeof(unsigned char)= 1

#include <fstream>
#include <iostream>

using namespace std;

int main(){

    unsigned char ucbuffer;

    fstream in;

    in.open("input.in",ios::binary | ios::in);

    in.read((char*)&ucbuffer,1);

    cout << ucbuffer << endl;
    if (ucbuffer==1) cout << "True" << endl;
    else cout << "False" << endl;

        return 0;
}

最佳答案

if (ucbuffer==1)为假。该值为'1',而不是1'1'的数值是49。

08-06 15:48