簡體   English   中英

如何使用C將char數組更改為int?

[英]How can I change char array to int using C?

我正在學習C,我正在解析一個原始的注冊表文件並閱讀它。

我現在有些問題,

000011E0    00 00 00 00 60 01 00 00 B9 01 00 00 00 00 00 00 
000011F0    20 C0 26 00 FF FF FF FF 00 00 00 00 FF FF FF FF 
00001200    10 FC 00 00 FF FF FF FF 4C 00 01 00 00 00 00 00
this is hex value of REGISTRY file.

fseek(fp,0x11F0,SEEK_SET);

char tmp[4];
int now = ftell(fp);
for(int i = 0 ; i < 4 ; i++){
    tmp[i] = fgetc(fp);
    }

我做了這個tmp數組,但我需要0x0026c020。 如何將此數組更改為該值? 或者請建議我更好的算法。

謝謝。

如果您知道該值存儲的內容與主機操作系統架構具有相同的字節序,則可以執行以下操作:

int value = *(int *)tmp;

但是,你應該閱讀向后的順序字節,你在這里做的-這改變了存儲方式,並會導致不正確的值。 嘗試這個:

int value;
if (fread(&value, sizeof(value), 1, fp) != 1) {
    /* Could not read, handle error. */
}

/* value is set, inspect it */

要將字符串轉換為整數,已有可用的函數,其中一個函數是strtoul()。

您可以使用標准的strtoul()函數將字符串轉換為整數值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM