我無法從文件讀取特定的整數,我不知道爲什麼。首先,我通讀整個文件以瞭解它有多大,然後將指針重置爲開始。然後我讀取3個16字節的數據塊。然後1個20字節塊,然後我想在最後讀取1個字節作爲整數。但是,我不得不以文字形式寫入文件,但我認爲這不應該成爲問題。我的問題是,當我從文件中讀出它而不是15的整數值時,它是49.我檢查了ACII表,它不是1或5的十六進制或八進制值。我很困惑,因爲我的閱讀聲明是read(inF, pad, 1)
,我相信是正確的。我知道整數變量是4個字節,但是文件中只剩下一個字節的數據,所以我只讀入最後一個字節。
我的代碼複製功能(它似乎想了很多,但不認爲這是)從C中的文本文件讀取
代碼
#include<math.h>
#include<stdio.h>
#include<string.h>
#include <fcntl.h>
int main(int argc, char** argv)
{
char x;
int y;
int bytes = 0;
int num = 0;
int count = 0;
num = open ("a_file", O_RDONLY);
bytes = read(num, y, 1);
printf("y %d\n", y);
return 0;
}
綜上所述,我的問題,如何當我讀到字節來存儲15從文本文件,我不能從整數表示15視圖呢? 任何幫助將不勝感激。 謝謝!
我不能完全瞭解您所用數據做什麼,所以你應該降低代碼的東西簡單,像「從閱讀數一個文件「和」向一個文件寫入一個數字「 - 實驗起來要容易得多。 – che 2012-03-11 23:51:25
@che我將代碼更改爲類似但很簡單的代碼,但我仍然遇到同樣的問題,您有建議嗎? – tpar44 2012-03-12 01:44:00
這是一條線索:49是ASCII字符'1'的十進制值。 – blueshift 2012-03-12 02:01:35