我试图创建一个调用printf的函数(在我的情况下使用curses打印)以及我这样做的原因因为我想传递颜色并在同一个函数中进行刷新,所以不是每次都写3行我想要展示一些东西,我只需要用一个函数做一次,所以我要创建的函数在C中看起来像这样:
void outputConsole(int color_id, const char* a, ...)
{
attron(COLOR_PAIR(2));
printw(a,...);
refresh();
}
答案 0 :(得分:2)
您可以使用vw_printw
执行此操作。解决方案是
void outputConsole(int color_id, const char* a, ...)
{
attron(COLOR_PAIR(2));
va_list args;
va_start(args, a);
vw_printw(stdscr, a, args);
va_end(args);
refresh();
}
同样在声明确保编译器格式字符串检查时,您可以像这样写
void outputConsole(int color_id, const char* a, ...)
#ifdef __GNUC__
__attribute__(( format (printf, 2, 3)));
#else
;
#endif