我的代码有什么问题?我正在尝试逐行读取文件并将0x“十六进制数字”形式的数字转换为整数。它只返回 1 行然后结束,我的输入是这样的
0x9C40
0x3B9AC9FF
0x754893gf
0x754893gf
0x754893gf
0x754893gf
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#define MAXCHAR 1000
int main() {
FILE *fp;
char str[MAXCHAR];
char* filename = "C:\\test.txt";
int number;
fp = fopen(filename, "r");
if (fp == NULL){
printf("Could not open file %s",filename);
return 1;
}
while (fgets(str, MAXCHAR, fp) != NULL)
number = (int)strtol(str, NULL, 0);
printf("%d\n", number);
fclose(fp);
return 0;
}