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);
}