诅咒C中的函数,打印出默认消息并闪烁



在屏幕中央显示一条闪烁的消息。如果用户在命令行上提供消息,则程序应显示该消息,否则将显示默认消息。使用睡眠功能可在打印信息和擦除信息之间暂停程序。这是我到目前为止所做的,我只能打印和闪烁消息是我输入的,但我不能打印默认消息。

#include <ncurses.h>            
#include <string.h> 

int main()
{
char mesg[50]="";       
int row,col;                         
initscr();  
scanf("%s",&mesg);
getmaxyx(stdscr,row,col);
for(int i=0;i<8;i++){
if(i%2==1)
standout();    
mvprintw(row/2,col/2,"%s",mesg);
sleep(1);
if(i%2!=1)
standend();
mvprintw(row/2,col/2,"%s",mesg);                                
refresh();
}
getch();
endwin();
return 0;
}

谢谢你们的帮助!

main定义为int main(int argc, char *argv[])(或char **argv(以访问命令行参数。假设为argc >= 1,则程序名称将在argv[0]中,如果为argc > 1,则命令行参数字符串将在从argv[1]argv[argc - 1]中。argv[argc]将是一个空指针。

#include <ncurses.h>
#include <string.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
const char *mesg;
int row,col;
int startcol;
if (argc > 1) {
mesg = argv[1];
} else {
mesg = "Default message";
}
initscr();
getmaxyx(stdscr,row,col);
if (strlen(mesg) > col) {
startcol = 0;
} else {
startcol = (col - strlen(mesg)) / 2;
}
for(int i=0;i<8;i++){
if(i%2==1)
standout();    
mvprintw(row/2,startcol,"%s",mesg);
sleep(1);
if(i%2!=1)
standend();
mvprintw(row/2,startcol,"%s",mesg);                                
refresh();
}
getch();
endwin();
}

最新更新