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

#include"stdio.h"#include"stdlib.h"main(){charx;while(1){printf("请输入一个小写字母:");x=getch... #include"stdio.h"
#include"stdlib.h"
main()
{

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

}
展开
 我来答
AMKONG
推荐于2017-09-28 · TA获得超过349个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:114万
展开全部
这是肯定的。。比如你输入a 然后回车 getchar() 接收到的不是a 是回车 出来肯定是乱码 改法
int main()
{

char x;
while(1)
{
printf("请输入一个小写字母:");
x = getchar();
getchar();
printf("大写字母为\n");
putchar(x-32);
printf("\n");
}
return 0;
}
getchar 很不好用 还不如printf %s 来的好用
希声和寡
2011-11-25 · TA获得超过2.6万个赞
知道大有可为答主
回答量:6437
采纳率:0%
帮助的人:3492万
展开全部
用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);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fan_frank904
2011-11-25 · TA获得超过154个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:152万
展开全部
#include"stdio.h"
#include"stdlib.h"
void main()
{

char x;
while(1)
{
printf("请输入一个小写字母:");
x = getchar();
getchar();// 增加一个getchar函数用来接收输入字母完成后按下的回车信息
printf("大写字母为:\n");
putchar(x - 32);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stwo
2011-11-25 · 超过18用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:53.2万
展开全部
getchar()函数读取了你的换行符,引起了这个错误。
你输入a+回车实际上后面有两个换行符,所以每个字母输出了2次
x = getchar();
if(x>95) printf("大写字母为:\n");putchar(x - 32);
这样就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
追梦Ayu
2011-11-26 · 超过44用户采纳过TA的回答
知道答主
回答量:265
采纳率:16%
帮助的人:61万
展开全部
#include<stdio.h>
#include<stdlib.h>
main(void)
{
char x;
printf("请输入一个小写字母:");
x = getchar();
printf("大写字母为:\n");putchar(x - 32);
system ("PAUSE");
}

PS:你是哪个学院的啊???呵呵。。。我也是王来金的学生啊~~
追问
呃,囧,我是新闻的,副修了计算机。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式