上下文:Ç - 反向轉爐工藝
我試圖扭轉c
轉換器的過程。這是原轉換器:
#include <stdio.h>
int main(void) {
FILE *f = fopen("input.bin", "rb");
fseek(f, 0, SEEK_END);
int s = ftell(f);
rewind(f);
FILE *o = fopen("output.txt", "wb");
int i;
for(i = 0; i < s/4; i++) {
unsigned int u;
fread(&u, sizeof(u), 1, f);
fprintf(o, "u32[%d] = 0x%08x;\n", i, u);
}
fclose(o);
fclose(f);
return 0;
}
它所做的是它創建了一個名爲output.txt
新文件和.bin
文件的字節轉換在這樣的順序:
u32[0] = 0x53555441;
u32[1] = 0x6373b848;
u32[2] = 0x74654e65;
u32[3] = 0x83486f53;
u32[4] = 0x0ebe60ec;
u32[5] = 0x48000000;
u32[6] = 0x40245c8d;
u32[7] = 0x24448948;
u32[8] = 0xda894840;
u32[9] = 0x244c8d48;
u32[10] = 0x024fbf10;
u32[11] = 0xc0310000;
u32[12] = 0x482444c7;
u32[13] = 0x74656b63;
問題:
現在,我想要做的是相反的。所以,我試圖再次將上述轉換器的輸出字節轉換爲.bin
文件,就像它的原始狀態一樣。
我嘗試這樣做,但我卡在環部分:
#include <stdio.h>
int main(void) {
FILE *f = fopen("loader.txt", "rb"); // INPUT
fseek(f, 0, SEEK_END);
int s = ftell(f);
rewind(f);
FILE *o = fopen("loader.bin", "wb"); // OUTPUT
int i;
for(i = 0; i < s/4; i++) {
// grab u32 bytes from loader.txt and convert into a .bin
}
fclose(o);
fclose(f);
return 0;
}
誰能幫我這個?會驚人地appriciated。
編輯
#include <stdio.h>
int main(void) {
FILE *f = fopen("loader.txt", "rb"); // INPUT
rewind(f);
FILE *o = fopen("loader.bin", "wb"); // OUTPUT
int i;
for(i = 0; i < s/4; i++) {
fgets(f);
sscanf(f);
}
fclose(o);
fclose(f);
return 0;
}
我確定我看到過類似的問題,以前有解決方案,但我現在找不到它... –
@ChrisTurner真的,這是因爲我刪除它,因爲它被標記爲不解釋它好吧,因爲帳戶被鎖定,所以不能發佈問題。 – Mitch
請用有意義的名稱命名變量,單字母變量不能幫助任何人 –