ncursesでいくつかの作業を試みると、ボックスの描画だけでなく、その他の目的でもワイド文字を使用する必要があり、タイルごとの制御が役立つ状況になりました。
ただし、次のコードを使用しようとすると、問題が発生します。
#define _XOPEN_SOURCE_EXTENDED
#include <locale.h>
#include <curses.h>
#include <stdlib.h>
#include <time.h>
#define ESC 27
int main() {
setlocale(LC_CTYPE, "");
initscr();
keypad(initscr(),1);
curs_set(9);
nonl();
cchar_t special;
setcchar(&special, L"æ", 0, COLOR_PAIR(0), NULL);
cchar_t speshul;
setcchar(&speshul, L"朝", 0, COLOR_PAIR(0), NULL);
int c=0;
do {
clear();
mvadd_wch(3,6, &special);
mvadd_wch(4,6,&speshul);
refresh();
} while ((ESC!=(c=getch())));
endwin();
}
編集:
使用するコードを更新しましたsetcchar
; 出力はがっかりします:
?
どこにあるべきかという単一の疑問符がspecial
あり、どこにあるべきかは何もありspeshul
ません。
どちらの文字も期待どおりに表示されません。
問題はどこにあり、どうすれば修正できますか?
編集: Peteshに応じたいくつかの追加情報:
期待される結果は、文字「æ」とその下の朝の印刷です。MacOSXでTerminal.appを使用しています。Xcodeをコンパイルしています。