繁体   English   中英

在unsigned int var中获得负值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM