在调用 sprintf 函数格式化字符串时,打印了一些意想不到的东西
printf("%d;%s;%s;%d;%d;\n", ptr->programmaType, ptr->titel, ptr->zender, ptr->start, ptr->einde);
打印“0;星际之门;科幻;0;0;” 尽管
printf("%d;", ptr->einde);
打印“42”,这是 ptr->einde 的值。我也试过
printf("%d;%s;%s;%d;%d;", 0, "Stargate", "scifi", 0, 42);
打印正确,所以我猜这个问题与变量有关。我尝试的最后一件事是
int bug = ptr->einde;
printf("%d;%s;%s;%d;%d;\n", ptr->programmaType, ptr->titel, ptr->zender, ptr->start, bug);
也无法正确打印...我不知道到底发生了什么。
注意: ptr->start 和 ptr->einde 被定义为 time_t 类型,但是看到 printf 使用单个参数我怀疑这是一个问题。