[英]Special characters C/C++
當我使用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 ++測試,都可以打印這些符號。 但是在另一個OS和/或編譯器上,可能會打印不同的符號或根本不打印任何內容。
在所有系統上,只能保證ASCII字符32-126是可打印的,並且符號相同。
C ++是一種英語語言,只能打印英語中的原始ASCII代碼,某些第三方庫(例如Curses)可以使您解決這個問題並打印一些非ASCII代碼庫, 網址為 : http : //www.melvilletheatre.com/articles/ ncurses-extended-characters / index.html
但是在大多數情況下,由於沒有實際用途,所以我看不到為什么要打印這些字符。
其他說明:您不能執行此操作,因為原始ASCII代碼包含127種類型。 二進制和填充物,對問題的回答不同,所以只知道它們僅允許127個字母,在這里可以找到更多。 enwikipedia.org/wiki/ASCII和williamrobertson.net/documents/ascii.html(此代碼為您提供了可以用C ++實際打印的內容)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.