基本上我有一個包含數字的文本文件。我將數字更改爲0開始,然後從文件中讀取2個字節(因爲int爲2個字節),並將其轉換爲int。然後我打印結果,但它打印出奇怪的結果。從一個文件讀取2個字節並轉換爲一個int給出錯誤的輸出
所以當我有0時,打印2608出於某種原因。
我正在關閉一個文檔,說我需要讀取一個文件,其中字節0到1的偏移量表示一個數字。所以這就是爲什麼我要讀取字節而不是字符的原因...
我想這個問題是由於閱讀字節而不是字符讀取,所以如果是這種情況,請你解釋爲什麼它會有所作爲?
這裏是我的代碼:
void readFile(FILE *file) {
char buf[2];
int numRecords;
fread(buf, 1, 2, file);
numRecords = buf[0] | buf[1] << 8;
printf("numRecords = %d\n", numRecords);
}
我真的不知道什麼是BUF [0] | buf [1] < < 8沒有,但我從另一個問題得到了......所以我想這也可能是問題。
決定你的想法。要麼你有一個文本文件,要麼你有一個帶有2字節二進制整數的文件。不是在同一時間。 – EJP
@EJP我完全消隱並忘記我的int將以ASCII形式。 – Logan