Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ncurses显示wchar\t 我目前正在研究一个C++项目,其中需要显示一些扩展字符WHARGYT.< 主要问题是,即使它在WC中使用WPROTFF工作得很好,它也不能在C++中使用MVWADADWSTR或WADWSTR。当然,我已经这样设置了区域设置:setlocaleLC_ALL;,没有显示任何内容_C++_Ncurses_Wchar T - Fatal编程技术网

使用ncurses显示wchar\t 我目前正在研究一个C++项目,其中需要显示一些扩展字符WHARGYT.< 主要问题是,即使它在WC中使用WPROTFF工作得很好,它也不能在C++中使用MVWADADWSTR或WADWSTR。当然,我已经这样设置了区域设置:setlocaleLC_ALL;,没有显示任何内容

使用ncurses显示wchar\t 我目前正在研究一个C++项目,其中需要显示一些扩展字符WHARGYT.< 主要问题是,即使它在WC中使用WPROTFF工作得很好,它也不能在C++中使用MVWADADWSTR或WADWSTR。当然,我已经这样设置了区域设置:setlocaleLC_ALL;,没有显示任何内容,c++,ncurses,wchar-t,C++,Ncurses,Wchar T,有人以前遇到过这个问题吗,或者对此有想法吗 谢谢 代码如下: struct charMap { int x; int y; wchar_t value }; int i, x, y; wchar_t str[2]; struct charMap _charMap[2] = { {0,0,9474} {29, 29, 9474} }; initscr(); setlocale(LC_ALL,

有人以前遇到过这个问题吗,或者对此有想法吗

谢谢

代码如下:

  struct charMap { int x; int y; wchar_t value };
  int                   i, x, y;
  wchar_t               str[2];
  struct charMap _charMap[2] = {
    {0,0,9474}
    {29, 29, 9474}
  };
  initscr();
  setlocale(LC_ALL, "");
  for (y = 0 ; y < 30 /* length */ + 2 ; y++) {
    for (x = 0 ; x < 30 /* width */ + 2; x++) {
      for (i = 0 ; i < 2 ; i++) {
        if ((x == _charMap[i].x || _charMap[i].x == -1) &&
            (y == _charMap[i].y || _charMap[i].y == -1)) {
          str[0] = _charMap[i].value;
          str[1] = L'\0';
          mvwaddwstr(stdscr, y, x, str);
          break;
        }
      }
    }
  }
  refresh();
  while(1);
_charMap是一个结构表,包含有用的值,便于比较,避免了繁重的if。。。否则如果。。。其他结构_charMap[].value是一个wchar\u t,_charMap[].x是一个int,就像_charMap[].y.

在执行initscr之前,您需要设置localelc\u ALL

一个有效的例子:

#include <ncursesw/ncurses.h>
#include <locale.h>
#include <wchar.h>

int main() {  
    setlocale(LC_ALL, "");
    initscr();
    wchar_t wstr[] = { 9474, L'\0' };
    mvaddwstr(0, 0, wstr);
    refresh();
    getch();
    endwin();
    return 0;
}
在执行initscr之前,需要设置localelc_ALL

一个有效的例子:

#include <ncursesw/ncurses.h>
#include <locale.h>
#include <wchar.h>

int main() {  
    setlocale(LC_ALL, "");
    initscr();
    wchar_t wstr[] = { 9474, L'\0' };
    mvaddwstr(0, 0, wstr);
    refresh();
    getch();
    endwin();
    return 0;
}

你能不能创造一个新的环境,让我们看看你的尝试?任何代码都会有帮助。我已经添加了一段应该可以工作的代码。您是否可以创建一个新的代码,并向我们展示您的尝试?任何代码都会有帮助。我添加了一段应该可以工作的代码。