- 此问题在此处已有答案**:
C Cyrillic console input with standard char data type instead of wchar_t(1个答案)
14天前关闭。
程序的目的是得到一个符号,然后立即在屏幕上显示出来,但问题是它输出了一个不同的字符,或者什么都没有,我发现输出是用Windows-1251编码,输入是用CP866,我怎么解决这个问题呢?如何使输出和输入都用Windows-1251编码。
后脚本:输入西里尔字符时出现问题。
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(void)
{
setlocale(LC_ALL, "");
printf("Уведіть символ.\n");
char ch = getchar();
printf("\n");
printf("%c", ch);
getchar();
getchar();
return 0;
}
我尝试使用wchar_t
(分别为程序wprintf()
、getwchar()
),但情况没有改变。
2条答案
按热度按时间k10s72fa1#
也许这会有所帮助?https://stackoverflow.com/a/44167461/8893124他们建议设置:
nhhxz33t2#
我找到了另一种方法来解决这个问题。也许有人会发现它有用。但是,它只适用于Windows。为此,您需要包括头文件<windows.h>,并在输入以下内容之前写入:
然后输入/输出将采用Windows-1251编码。