我有以下一段 C 语言代码,它在我朋友的笔记本电脑上运行良好,但在我的笔记本电脑上不工作。
在这段代码中,在这个特定的时间段之后,我想发出警报声,但它不起作用,请帮忙。
for(i=1;i<10;i++)
{
delay(500);
if(i==9)
printf("Time up \a");
}
C中是否有任何解决方案来解决这种依赖关系
输出可能会保留在stdio缓冲区中(FILE
尤其stdout
是每个缓冲区;请参阅setvbuf(3))。
我建议添加对fflush(3)的调用,例如
for(i=1;i<10;i++) {
delay(500);
if(i==9) {
printf("Time up \a");
fflush(stdout);
}
}
顺便说一句,您可以调用fflush(NULL);
以刷新每个FILE
缓冲区。
我不熟悉delay
。我认为这是某种sleep(3)。
根据经验,如果您不是以或不是终端来结束printf
格式字符串,您应该偶尔调用(尤其是使用or )。但也不要太频繁地调用它。\n
stdout
fflush
delay
sleep
PS。考虑在您的笔记本电脑上安装 Linux。并考虑使用GCC(也许稍后使用MELT对其进行自定义)。它非常有趣,而且它是免费软件,因此您可以研究内部实现。