当我使用 NetBeans 编译下面的代码时,程序的输出是终端中的一些奇怪字符 (teste á É Ãµ)。不幸的是我找不到解决方案。
有人遇到过吗?知道解决方法吗?
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv) {
setlocale(LC_ALL,"");
printf("teste á é õ");
return (0);
}
我的编译器是 MinGW,我的母语是巴西葡萄牙语。
输出:
最佳答案
它们不是 Ascii 字符。
ASCII 字符 0-31 是各种空格字符,没有标准化的方式来打印它们。这是一个“扩展的 ASCII 表”。无法保证这些确切的符号将打印在您的特定平台上。
它们在 Windows 7 中对我来说运行良好,使用 GCC 和 Embarcadero C++ 进行了测试,都打印了这些符号。但在另一个操作系统和/或编译器上,可能会打印出不同的符号或根本不打印任何符号。
只有 ASCII 字符 32 - 126 保证在所有系统上都是可打印的,并且是相同的符号。
关于c++ - 特殊字符 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284159/