【发布时间】:2012-07-04 19:49:13
【问题描述】:
我正在尝试从文件中读取以下二进制文件 (01100001) 并将其转换为 ascii 代码 (97),但是当使用 fread 时,我得到了一个非常大的数字。 文件“c:/input.txt”仅包含以下行 -01100001 数组值的 printf 打印大数字,例如 825241648
我的代码:
int main()
{
unsigned int arr[8];
int cnt,i,temp=0;
FILE * input;
if(!(input=fopen("C:/input.txt","r")))
{
fprintf(stderr,"cannot open file\n");
exit(0);
}
cnt = fread(arr,1,8,input);
for(i=0;i<cnt;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}
知道为什么吗?
【问题讨论】:
-
使用累加器遍历字符串以存储每个地点的翻译数字。
-
我尝试用累加器循环它,但问题是数组的每个值都非常大,例如 - 825241648 而不是 1 或 0。
-
将您正在读取的数据项的大小与您存储读取的数据的变量的大小进行比较,然后查看您的代码。