【发布时间】:2015-05-28 05:55:39
【问题描述】:
我截取了以下代码以从 .txt 文件中读取 16 个无符号字符值。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j, k, load_size;
unsigned char *buf;
load_size = 16;
buf = (unsigned char *)malloc(load_size);
FILE *fin;
fin = fopen("demo_input1.txt", "r");
fread(buf, 1, load_size, fin);
for(i=0;i<16;i++){
printf("%d ", *buf);
buf++;
}
system("PAUSE");
}
文件“demo_input1.txt”包含值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16。但我在控制台值中得到输出 49 32 50 32 51 32 52 32 53 32 54 32 55 32 56 32。任何人都可以告诉我这里出了什么问题来帮助我吗?谢谢
【问题讨论】:
-
你需要 fscanf 而不是 fread。
-
49 = 0x31 这是
'1'的ASCII码点值
标签: c file-io type-conversion fread unsigned-char