我正在尝试从文本文件中读取十六进制,目前这就是我所拥有的
void hexReader(char* file, node* head){
FILE *fp;
char str[MAXCHAR];
size_t number = 0;
fp = fopen(file, "r");
if (fp == NULL){
printf("Could not open file %s",filename);
//return 1;
}
while (fgets(str, MAXCHAR, fp) != NULL) {
//while ((number = getline(&line, &len, fp)) != -1)
number = strtoull(str, NULL, 16);
if (number > 0){
printf("%size_t \n",number);
printf("%x \n",number);
}
}
fclose(fp);
}
我尝试使用 unsigned long long 作为数字,但它在 FFFFFFFFFFFFFFF 等十六进制上失败。我应该能够以 0x.... 最多 64 位十六进制数的形式读取类似的内容。
为什么会失败?Size_t 在太大的数字上打印出无意义的和 unsinged long long 失败。