[英]Getting data from .map file
我有一個.map文件,其中包含我想要的結構中的一些數據。 .map文件中的輸入示例。
à>〜÷>÷> +.ØæKL÷> C.
struct student {
char *id;
char name[20];
int age;
};
int main() {
char * buffer;
FILE *fptr;
struct student stud[100];
fptr = fopen("input.map", "wb+");
fread(stud, sizeof(stud), 1, fptr);
for (int i = 0; stud[i].id != NULL; ++i)
{
printf("Name: %s \n", stud[i].name);
printf("Age: %s", stud[i].age);
}
fclose(fptr);
system("pause");
}
但是,輸出是一堆這樣的字符,用於打印名稱...╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠
用於打印學生的年齡-858993460 -858993460 -1533994631我不知道出了什么問題。
如果我走錯了方向,請指正我。 這門語言很新。 提前致謝。
由於您的輸入似乎沒有任何可讀性,因此我認為您必須首先驗證如何編寫文件。
如果使用fwrite
輸出struct student
,它將把內存的直接內容輸出到文件。 指針char *
將作為指針值(長度取決於您的系統詳細信息)輸出,固定數組char ...[20]
應該按原樣輸出,同樣是整數。
您可以在文件中輸出char *
字符串,但請確保包括標記字符串結尾的零定界符。
由於char *
內容的長度可能會有所不同,因此您無法使用帶有結構的簡單fread
讀取內容。 讀取字符串,然后根據其類型逐字段讀取。
或者,您可以重新組織數據。
在輸出和輸入二進制數據時,使用簡單的示例文件並使用十六進制編輯器或十六進制轉儲檢查它們將非常有幫助。 還包括數據的十六進制轉儲而不是字符串可以提倡更准確的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.