输入输出问题

wangxiaowen2008 2009-03-24 11:39:20
#include <stdio.h>
int main(void)
{
char c;

scanf("%d",&c);
c=c-32;
printf("%c %d",c,c);
//while((c=getchar()) !='\n')
// continue;



}
我想问问,字符跟正整型数可以互相转换的,为什么我在输入的时候,不可以输字母呢?它不是可以自动转换为数字吗?输出的时候就可以输出数字.是不是这两个函数返回值不一样?
...全文
117 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你去看下什么叫ASC码。
每个单字符都对应0到255里一个数值。
xidianxiancai 2009-03-24
  • 打赏
  • 举报
回复
因为你在sancf中用的%d,所以当然要输入数字了。转换只是说在具体使用的时候,如比较的时候你可以有两种方式。假设char ch=A,则在比较的时候可以写成
if (ch==65) 或者 if (ch=='A')
wangyadong 2009-03-24
  • 打赏
  • 举报
回复
根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,就认为这一项结束,返回值为0 没有输入成功
帅得不敢出门 2009-03-24
  • 打赏
  • 举报
回复
你应该理解下 字母的 asicc与 数字的范围
不是所有的都是可打印的
breezes2008 2009-03-24
  • 打赏
  • 举报
回复
在ASCII码范围内才能相互转换,范围是[0,255]
,而其中可打印字符范围是:[32,126] //32是空格。
spirit_sheng 2009-03-24
  • 打赏
  • 举报
回复
2 3 5 楼说的均正确
ctan 2009-03-24
  • 打赏
  • 举报
回复
的确是可以自动转换的, 但你至少要告诉它你现在输入的是字母还是数字,
如果你想告诉它输入的是字母, 就用%c,
如果你想告诉它输入的是十进制整数, 就用%d,
如果...
然后, 它才会将你的输入值自动转换成相应的二进制数放入指定变量中


70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧