ncurses printw() 不会将任何内容打印到 window
ncurses printw() doesn't print anything into window
我正在尝试创建一个 window 并使用 ncurses 向其中打印一些文本,但我只是得到一个空白屏幕。我认为 printw()
不起作用,因为我能够在不同的程序中以相同的顺序打开具有相同功能的工作 window。
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
char string[] = "string";
int main(void)
{
system("clear");
int c;
initscr();
curs_set(0);
noecho();
keypad(stdscr, TRUE);
cbreak();
WINDOW *game_window;
game_window=newwin(40,40,1,1);
int num=0, highs=0;
while (TRUE) {
clear();
printw("\t%s\n", string);
printw("\tScore: %d High Score: %d\n", num, highs);
sleep(1);
break;
}
endwin();
printf("done\n");
return 0;
}
由于您要在 game_window 中打印此内容(我相信这是您的意图),请使用 wprintw 而不是 printw :
wprintw(game_window, "\t%s\n", string);
wprintw(game_window, "\tScore: %d High Score: %d\n", num, highs);
此外,不要忘记 ncurses 要求您 刷新 windows:
refresh(); // main screen
wrefresh(game_window); // game_window window
这应该有所帮助!这是完整的代码,所以你知道我放在上面的位置 ;)
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
char string[] = "string";
int main(void)
{
system("clear");
int c;
initscr();
curs_set(0);
noecho();
keypad(stdscr, TRUE);
cbreak();
WINDOW *game_window;
game_window=newwin(40,40,1,1);
int num=0, highs=0;
while (TRUE) {
clear();
wprintw(game_window, "\t%s\n", string);
wprintw(game_window, "\tScore: %d High Score: %d\n", num, highs);
refresh();
wrefresh(game_window);
sleep(1);
break;
}
endwin();
printf("done\n");
return 0;
}
我正在尝试创建一个 window 并使用 ncurses 向其中打印一些文本,但我只是得到一个空白屏幕。我认为 printw()
不起作用,因为我能够在不同的程序中以相同的顺序打开具有相同功能的工作 window。
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
char string[] = "string";
int main(void)
{
system("clear");
int c;
initscr();
curs_set(0);
noecho();
keypad(stdscr, TRUE);
cbreak();
WINDOW *game_window;
game_window=newwin(40,40,1,1);
int num=0, highs=0;
while (TRUE) {
clear();
printw("\t%s\n", string);
printw("\tScore: %d High Score: %d\n", num, highs);
sleep(1);
break;
}
endwin();
printf("done\n");
return 0;
}
由于您要在 game_window 中打印此内容(我相信这是您的意图),请使用 wprintw 而不是 printw :
wprintw(game_window, "\t%s\n", string);
wprintw(game_window, "\tScore: %d High Score: %d\n", num, highs);
此外,不要忘记 ncurses 要求您 刷新 windows:
refresh(); // main screen
wrefresh(game_window); // game_window window
这应该有所帮助!这是完整的代码,所以你知道我放在上面的位置 ;)
#include <stdio.h>
#include <stdlib.h>
#include <curses.h>
#include <unistd.h>
char string[] = "string";
int main(void)
{
system("clear");
int c;
initscr();
curs_set(0);
noecho();
keypad(stdscr, TRUE);
cbreak();
WINDOW *game_window;
game_window=newwin(40,40,1,1);
int num=0, highs=0;
while (TRUE) {
clear();
wprintw(game_window, "\t%s\n", string);
wprintw(game_window, "\tScore: %d High Score: %d\n", num, highs);
refresh();
wrefresh(game_window);
sleep(1);
break;
}
endwin();
printf("done\n");
return 0;
}