[英]Obtaining a negative value in unsigned int var
使用VS2010编译这些行
unsigned final_value;
long int offset=109572;
long lSize=2; //2 Bytes
char *buffer;
buffer = (char*) malloc (sizeof(char)*lSize);
mybinfile = fopen("binfile.bin","rb");
fseek(mybinfile,offset,SEEK_SET);
fread(buffer,lSize,1,mybinfile);
fclose(mybinfile);
sscanf(buffer,"%u",&final_value);
运行此代码,final_value返回一个负值。 (从控制台使用NMAKE编译的同一代码将返回正确的正值。)如何解决此问题? 可能是由于一次溢出造成的,也可能是由于我的vs2010设置不正确造成的
预先感谢
scanf
用于读取TEXT(字符串),您要获取两个字节并将其传递给scanf()
-除非您的两个字节恰好是两位数字(值是0x30-0x39),并且此后的下一个字节为零,绝对不会达到您的期望。
目前尚不清楚您希望两个字节代表什么,但是我很确定您在做什么是“错误的”。
至于负值,您该如何打印?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.