wscanw();不使用ncurses.h返回字符串

wscanw();不使用ncurses.h返回字符串,c,windows,input,console,ncurses,C,Windows,Input,Console,Ncurses,当我输入“/退出”时,它什么也不做? 我正在使用PDCurses和MinGW 我正在使用gcc-o file.exe file.c-lpdcurses进行编译 while (1) { wscanw(inputwin, "%s", &text); if (text == "/quit") { mvwprintw(txtwin, 1, 1, "quit&q

当我输入“/退出”时,它什么也不做? 我正在使用PDCurses和MinGW 我正在使用gcc-o file.exe file.c-lpdcurses进行编译

    while (1)
    {
        wscanw(inputwin, "%s", &text);
        if (text == "/quit")
        {
            mvwprintw(txtwin, 1, 1, "quit");
            wrefresh(txtwin);
        }
        wrefresh(inputwin);
        wclear(inputwin);
        wrefresh(inputwin);
        wmove(inputwin, 0, 0);
    }

您无法将C中的字符串与相等运算符进行比较,因为您将比较指针地址而不是指向的值。相反,您应该使用。请注意,当字符串匹配时,strcmp返回0。另一件值得注意的事。假设“text”是指向字符的指针,那么您不应该传递它的地址,因为wscanw将读取到错误的地址。然而,如果文本是一个字符,那么使用wscanw读入它也将调用未定义的行为,因为您试图将一组字符塞进一个1字节的内存区域。在这种情况下,您可以将文本声明为具有适当大小的数组,或者使用

分配内存,非常感谢:)如果我的答案回答了您的问题,请将其标记为正确