c++ - 特殊字符 C/C++

标签 c++ c netbeans mingw

当我使用 NetBeans 编译下面的代码时,程序的输出是终端中的一些奇怪字符 (teste á É Ãµ)。不幸的是我找不到解决方案。

有人遇到过吗?知道解决方法吗?

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

int main(int argc, char** argv) { 
setlocale(LC_ALL,""); 
printf("teste á é õ"); 
return (0); 
} 

我的编译器是 MinGW,我的母语是巴西葡萄牙语。

sample configuration and versions

输出:

output

最佳答案

它们不是 Ascii 字符。

ASCII 字符 0-31 是各种空格字符,没有标准化的方式来打印它们。这是一个“扩展的 ASCII 表”。无法保证这些确切的符号将打印在您的特定平台上。

它们在 Windows 7 中对我来说运行良好,使用 GCC 和 Embarcadero C++ 进行了测试,都打印了这些符号。但在另一个操作系统和/或编译器上,可能会打印出不同的符号或根本不打印任何符号。

只有 ASCII 字符 32 - 126 保证在所有系统上都是可打印的,并且是相同的符号。

关于c++ - 特殊字符 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284159/

相关文章:

c - 从 QT 运行 C 程序

c - 如何在没有 dlsym 的情况下调用具有相同名称但在另一个共享库中的函数?

netbeans - 源目录已经是 NetBeans 项目错误

c++ - 无法链接到 C++ 的 MySQL 库

java - 无法运行带有嵌入式 Glassfish 的 Arquillian

c++ - 使用 FFmpeg 库、C++ 转码为 vorbis

c++ - 带有 vector 作为键的 STL 映射

c - 在 C 中使用 fread 函数从文件中读取前 5 个字符

c++ - 如何测试stringstream operator>>是否解析了错误的类型并跳过它

c++ - 错误: ‘recdisp’的类型冲突void recdisp(struct node * p)