wscanw();不使用ncurses.h返回字符串
当我输入“/退出”时,它什么也不做? 我正在使用PDCurses和MinGW 我正在使用gcc-o file.exe file.c-lpdcurses进行编译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
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字节的内存区域。在这种情况下,您可以将文本声明为具有适当大小的数组,或者使用分配内存,非常感谢:)如果我的答案回答了您的问题,请将其标记为正确