微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

诅咒:如何显示 wint_t 字符

如何解决诅咒:如何显示 wint_t 字符

一个应用程序可以生成随机文本并等待用户输入。然后将每个输入的字符与文本中的一个字符(类型训练器应用程序)进行比较,迭代文本中的每个字符。我遇到了一个 unicode 问题。据我了解,需要使用 <wchar.h> 我首先从用户那里获取一个字符

setlocale(LC_ALL,"");
wint_t c;
wget_wch(text_window,&c);

之后进行比较

wchar_t *p = L"Big Unicode text";
while (*p != '\0') {
  if (c == *p) { // if the user entered the correct first character,adding a character to text with green color
    xcount++;
    mvwaddch(ptext_win,ycount,xcount,c);
    p++;
  } else {
    // entered the wrong character,red colors
    mvwaddch(ptext_win,p);
  }
}

但是函数mvwaddch不适合wint_t 我尝试使用 mvwaddwstr 但此函数将文本从 ptext_win 删除到新行的末尾,并在其位置放置 c 符号。我认为在我的情况下,该功能适合add_wch家庭

mvwadd_wch(ptext_win,&c);

在这种情况下会出现错误,预期为const cchar_t *,而不是wint_t 如何将 wint_t 字符输出到 Curses 窗口?什么是 cchar_t 类型?

解决方法

mvwaddnwstr(ptext_win,ycount,xcount,&c,1);

解决我的问题...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。