请问 fread()读出来的东西放在 char*类型里还是 unsigned char*类型中?


假设代码是这样咧,哪个正确?
代码1:
FILE * fp=fopen("1.txt","rb");
char buf;
fread(&buf,1,1,fp);
fclose(fp);
代码2:
FILE * fp=fopen("1.txt","rb");
unsigned char buf;
fread(&buf,1,1,fp);
fclose(fp);

9 个解决方案

#1


unsigned char*的buf中更好

#2


都不正确吧,fread(buffer,size,count,fp),buffer是一个指针,你那样写,想起到什么作用?

#3


char*或者 unsigned char*都可以,看你自己.
unsigned char*类型更安全.

#4


为啥unsigned char*类型更好呢?

#5


没有说哪个更好吧,如果不是进行数字的操作,那么用哪个基本都无所谓,如果进行数字操作,就要注意它们的取值范围了。
char   -127~128   
unsigned   char   0~255   

引用 4 楼 tiancaiak 的回复:
为啥unsigned char*类型更好呢?

#7


请问unsigned  char和char什么情况下用呢?
能举几个常见的例子么?
谢谢lingyin55 ,我现在知道汉字要用unsigned  char了,什么情况要用char咧?

#8


ASCII 字符中有小于0的?
我是不是可以这样理解,只是把文件中的信息原封不运地读出来,由于可能存汉字,所以用unsigned char在读任何文件时都不会出现读出的内容有错误

#9


额,好像如果存入的char小于0,就不行了

好像明白了,用哪个读文件都行,读出来内容都是正确的,首先知道文件这个字符存的是什么,再把这个字符转化为char或是unsigned char

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2019 ITdaan.com

赞助商广告