编写的C语言程序怎么执行时出现中文乱码?

源程序如下:#include"stdio.h"#include"stdlib.h"main(){charx;while(1){printf("请输入一个小写字母:");x... 源程序如下:
#include"stdio.h"
#include"stdlib.h"
main()
{

char x;
while(1)
{
printf("请输入一个小写字母:");
x = getchar();
printf("大写字母为:\n");putchar(x - 32);
}

}
展开
 我来答
希声和寡
推荐于2017-11-24 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3499万
展开全部
我在一个问题里已经回答过了,再贴一下:
用fflush(stdin);来清空键盘缓冲区,
使用getch等都是治标不治本的办法,可以多学习一下fflush的使用,对于大批量的手动输入,很有帮助
头文件:#include <conio.h>

#include"stdio.h"
#include"stdlib.h"
#include <conio.h>
main()
{

char x;
while(1)
{
printf("请输入一个小写字母:");
fflush(stdin);//清空键盘缓冲区
x = getchar();

printf("大写字母为:\n");putchar(x - 32);
}

}
stwo
2011-11-25 · 超过18用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:53.3万
展开全部
getchar()函数读取了你的换行符,引起了这个错误。
你输入a+回车实际上后面有两个换行符,所以每个字母输出了2次
x = getchar();
if(x>95) printf("大写字母为:\n");putchar(x - 32);
这样就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhakalamu
2011-11-25 · 超过30用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:72.2万
展开全部
你输入的小写字母是中文还是什么?从第二个输入开始没看到你输入什么东西啊。。
如果你输入的是中文,中文的编码方式和字母是不同的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式