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

源程序如下:
#include"stdio.h"
#include"stdlib.h"
main()
{

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

}

我在一个问题里已经回答过了,再贴一下:
用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);
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-25
getchar()函数读取了你的换行符,引起了这个错误。
你输入a+回车实际上后面有两个换行符,所以每个字母输出了2次
x = getchar();
if(x>95) printf("大写字母为:\n");putchar(x - 32);
这样就好了
第2个回答  2011-11-25
你输入的小写字母是中文还是什么?从第二个输入开始没看到你输入什么东西啊。。
如果你输入的是中文,中文的编码方式和字母是不同的。。

我编写的C语言程序怎么执行后出现中文乱码?
这是肯定的。。比如你输入a 然后回车 getchar() 接收到的不是a 是回车 出来肯定是乱码 改法 int main(){ char x;while(1){ printf("请输入一个小写字母:");x = getchar();getchar();printf("大写字母为\\n");putchar(x-32);printf("\\n");} return 0;} getchar 很不好用 还不...

C语言运行的时候汉字全部乱码怎么回事?
1、汉字乱码是因为缓冲区有字符,需要用fflush(stdin);来清空键盘缓冲区,使用getch等都是治标不治本的办法,可以多学习一下fflush的使用,对于大批量的手动输入,很用。2、例程:include"stdio.h"#include"stdlib.h"#include <conio.h>main(){ char x; while(1) { printf("请输入...

VSCODE C语言终端输出中文出现乱码解决
在使用VSCode编写C语言时,有时会遇到输出到终端显示乱码的问题。这是由于VSCode默认使用UTF-8编码,而CMD默认编码为GBK,两者编码不同导致乱码现象。经过查询,解决办法主要有修改编码格式、环境变量、注册表等,但修改系统默认编码可能引发蓝屏风险,因此我并未采用。在VSCode设置中,可以通过配置单独语言的...

c语言运行程序结果出现类似中文的乱码
由此可见不是程序问题,解决方法1: 这个问题是因为语言设置不正确。如果想在AppWizard生成的工程文件中使用中文,在在MFC AppWizard的第1步中选择中文资源,选择Chinese(P.R.C),如果你在语言列表中没有找到有关中文的选项,说明你的VC++的中文支持模块没有安装。此时,应退出VC++,在VC++的光盘的DevSt...

C语言编程出现汉字输出乱码现象
C语言中一个汉字是由两个字节来表示的 而C语言编程主要是以字节为单位来显示 所以你的C语言输出中,如果汉字显示只显示了一个字节,就会有乱码出现了 正常的做法是,你的printf输出时,符号的长度要为偶数字节。

C语言问题,怎么执行出来的是乱码
你做什么操作的时候出现乱码了?我找到你的程序的一个错误:void fun4(){ int k;char newname[20],t[1];printf("请输入该学生的名字!\\n");这个地方需要加上一个gets(),为了接收你的回车赋,否则这个功能是实现不了的。再有即使加上这句话,你的程序还是有问题的,并不能删除!gets(t)...

vscodec语言printf打印中文,终端输出乱码怎么解决?
解决VSCode在Windows系统下printf打印中文出现终端输出乱码问题的方案涉及操作系统环境的检查。首先,明确自己的操作系统版本,这对于问题定位至关重要。对于Windows操作系统,通常问题源于编码设置不匹配。VSCode默认使用的是UTF-8编码。如果在使用printf打印中文时遇到乱码问题,尝试调整编码设置为GB2312,可有效...

c语言程序执行后出现汉子是怎么回事
你输出的时候用的是%c,输出的是字符 我这个代码中第三个printf后面的97是字母a的ascii码,ascii表格中是从1到127,相当于你的219被当做ascii码读入电脑了,然后以字符格式输出

C语言控制台程序,中文输出变成乱码,怎么解决
首先,要明确一点:C(语言\/程序)并不理解ANSI,UTF-8以及任何其他编码.它只知道处理你给它的字符的二进制表示.在简体中文Windows下,默认的文本保存编码是ANSI(即GBK);Linux下根据系统locale设定,一般应该是(zh_CN.UTF-8).(以下基于简体中文Windows)1)对于源文件中保存的"中文"这个字符串,VS2008看到的...

dev- c语言中文乱码怎么解决?
在Dev-C++中,如果出现了中文乱码的问题解决方法是修改编码设置、修改源代码文件的编码、使用其他编辑器或IDE。1、修改编码设置:在Dev-C++中,选择工具、环境选项、字符编码,然后选择UTF-8或GB2312等适合的编码方式。2、修改源代码文件的编码:在Dev-C++中,选择文件、另存为,在编码选项中选择适合的...

相似回答