清遥丷 2021-03-14 17:02 采纳率: 0%
浏览 142

C语言win10旧版控制台getch函数如何获取中文?

win10用VC++6.0做C语言控制台工程的时候,遇到了中文输入的问题。在新本控制台下用getch函数可以获取到正确的汉字输入,但是任务要求使用旧版控制台。切换为旧版控制台后输入中文一直不正确,F5调试,发现新版控制台在输入中文字的时候会自动获取两个数值,但是旧版控制台一直只获取第一个数值,导致输出乱码。目前暂时使用getchar函数替代getch,但是getchar无法获取到方向键的输入。以下为getch输入的代码片段,在新版控制台可以正常使用,旧版控制台是乱码。

#include <stdio.h>
#include <conio.h>

void main()
{
	char k='\0';
	char l='\0';
	char save[50]="\0";
	char ch[3]="\0";
	k=getch();
	if(-128<=k&&k<=-1)
	{
		l=getch();
		if(-128<=k&&k<=-1)
		{
			save[0]=k;
			ch[0]=k;
			save[1]=l;
			ch[1]=l;
		}
	}
	printf("%s",ch);
	
	
}
  • 写回答

1条回答 默认 最新

  • just found it 2023-12-02 19:07
    关注

    建议用getchar()或scanf()

    评论

报告相同问题?

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!