中的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文件中。