我有一个名为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。