中的ncurses printw函數這已被問到幾種不同的口味。但我仍然無法實現它的工作。這是我的函數定義。正向變量參數列表在c
void
ncurses_add_line(const char *fmt, ...)
{
if (ncurses_window) {
va_list args;
va_start(args, fmt);
printw(fmt, args);
printw("\n");
va_end(args);
}
}
當我調用這個函數時,我的函數中的可變參數輸出中出現亂碼。如果我直接撥打printw
,它一切正常。例如,如果我打電話ncurses_add_line
,比如ncurses_add_line("Hello %d", var)
,我得到的值不是var。但是,如果我撥打printw("Hello %d", var)
,我會看到「Hello」旁邊顯示的var的值,如果var == 1,那麼「Hello 1」用printw
打印,但ncurses_add_line
不是這種情況。
我需要改變什麼?
我的理由是因爲我不想將頭文件包含在我的c文件中。