不知道错哪了。。

重庆-老白 2010-10-19 08:08:35
非常简单的程序。。输入大写字母,显示小写字母

#include<stdio.h>
void main()
{
getchar();
putchar(getchar()+32);
putchar('\n');
}

测试的时候,为什么只能输入一次?比如
A
a
B
*
C
*
不用第一个getchar,就完全没事。。
#include<stdio.h>
void main()
{
putchar(getchar()+32);
putchar('\n');
}
这样,随便怎么都没事
为什么?
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HonryZZ 2010-10-20
  • 打赏
  • 举报
回复
3 楼正解..
無_1024 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 try325 的回复:]
引用 1 楼 walw521 的回复:

楼主想干么?你没有循环,当然只能输入一次了!

用个循环试试,
#include<stdio.h>
void main()
{
int c;
while ((c = getchar()) != EOF)
{if(c != '\n')
putchar(c+32);
else
putchar('\n');
}

}
[/Quote]
没有循环 循环输入就可以解决的
小驴 2010-10-19
  • 打赏
  • 举报
回复
楼主好好加油。。
try325 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 walw521 的回复:]

楼主想干么?你没有循环,当然只能输入一次了!
[/Quote]
用个循环试试,
#include<stdio.h>
void main()
{
int c;
while ((c = getchar()) != EOF)
{if(c != '\n')
putchar(c+32);
else
putchar('\n');
}

}
ogiso_pest 2010-10-19
  • 打赏
  • 举报
回复
*在ascii表中就是42
ogiso_pest 2010-10-19
  • 打赏
  • 举报
回复
输入一个A你肯定回车吧
第二个getchar会将换行符读入
则为10
加了32就是42
就是*了~
呵呵~
sea_spray 2010-10-19
  • 打赏
  • 举报
回复
就是么,没有循环,你怎么能连续输入?
walw521 2010-10-19
  • 打赏
  • 举报
回复
楼主想干么?你没有循环,当然只能输入一次了!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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