|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 newmonk 于 2013-8-17 21:18 编辑
char类型,在使用中是可以做数字使用的。signed char的值域为-128~127,unsigned char的值域为0~255。请看下面的代码:
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- char 数1=0;
- printf("数1=%d",数1);
- getchar();
- return 0;
- }
复制代码
上面的代码,在VS2010下,测试是正常的。但如果scanf接收用户输入的内容就不正常了。请再看下面的代码:
- #include "stdafx.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- char 数1=0;
- printf("请输入你的年龄:");
- scanf_s("%d",&数1);//vs2010下要求这样写,不然会提示不安全。
- getchar();
- printf("你的年龄是%d岁!",数1);
- getchar();
- return 0;
- }
复制代码
提示如下信息:Run-Time Check Failure #2 - Stack around the variable '数1' was corrupted.
解决的办法只能是把数1的类型定为int,或把数1的类型定为short并且把scanf_s("%d",&数1);改为scanf_s("%hd",&数1)。
奇怪的是上面的代码在VS6下测试却是正常的,请问,在VS2010下如果把char类型做数字用,且要求用户输入,我应该用什么参数接收?%?
|
|