带有 gcc 和葡萄牙语字符的 C

标签 c widechar

我正在尝试从 Windows 控制台打印和读取葡萄牙语字符,例如: ç 、 é 等...

    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    #include <wchar.h>

int main (void){
        wchar_t stringtemp[5];
        setlocale(LC_ALL,"Portuguese");


        wprintf(L"test with portuguese character: ç\n");
        wprintf(L"Insert a strange portuguese character: ");
        wscanf(L"%s",stringtemp);
        wprintf(L"%s\n",stringtemp);

        return 0;
    }

这是输出:

使用葡萄牙语字符进行测试:ç

插入一个奇怪的葡萄牙语字符:ç

有人知道那里出了什么问题吗?

最佳答案

至少在 Linux 上,如果我将 setlocale(LC_ALL, "Portuguese") 行更改为 setlocale(LC_ALL, "pt_BR.UTF-8") ,上面的代码就可以工作.

(奇怪的是,它不适用于“pt_PT.UTF-8”)。

关于带有 gcc 和葡萄牙语字符的 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800435/

相关文章:

c - 调用 free() 时出现段错误

c - 打字过程中如何防止数据丢失?

c - 扩展二维矩阵

C++ Unicode 问题

c++ - 在 Debug模式下运行时缓冲区溢出

c - 警告]数据定义没有类型或存储类[默认启用]

计算器程序问题

delphi - Windows 7 上的 WideChar 显示问题

c - C语言中的 "wide character string"是什么?

windows - 在 Windows C++ 控制台应用程序中使用 wchar_t/wmain 有意义吗?