如果我要使用
fprintf(fp, "%d", 1);
要写入txt
文件,我的文件内容是十六进制值1还是31? ('1'的ASCII值)
另外,fread()
函数读取数据究竟是怎样的?
我有一个2字节的文件,十六进制值32和33(分别)。
这是我的代码:
struct S {char a,b;} x;
FILE *f = fopen("F.TXT","rb");
if (f) {
fread(&x,1,sizeof(x),f);
printf("1:%c\n", x.b);
printf("2:%c\n", x.a);
}
输出如下:
1:3
2:2
为什么?
答案 0 :(得分:0)
回答OP的第一个问题:
发表声明:
fprintf(fp, "%d", 1);
该文件的内容将是包含以下内容的单个字符:
0x31
这是ASCII字符的十六进制值:1