0
我有一個名爲input.in的文件。我需要讀取數字並將其存儲在一個無符號的char類型變量中。我讀入數字並在屏幕上打印變量的內容,我可以看到它是真實的(打印1)。但是,if語句失敗。它將False輸出到stdout。爲什麼會發生?我如何將這個數字存儲到一個無符號的char變量中?無符號字符類型變量的I/O失敗
的input.in文件:
[email protected]:~/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;
}
但是用在.read((char *)&ucbuffer,1)中的語句;爲什麼把它當作一個角色來對待?我也以二進制模式打開文件。 – atakan
打開文件的模式並不重要,重要的是裏面是什麼,裏面有字符'1'。這就是你正在閱讀的內容,這就是你所得到的。如果您希望將其轉換爲值1,則需要執行格式化讀取。 – littleadv