3 回答
TA贡献1820条经验 获得超2个赞
您的输出正在缓冲。你有4个选择:
显式刷新
fflush 每次写入从缓冲区获利后仍然明确强制执行所需的行为/显示。
fflush( stdout );
缓冲区只有缓冲区
当你知道只打印完整的线条就足够了
setlinebuf(stdout);
禁用缓冲区
setbuf(stdout, NULL);
通过它提供的选项菜单在控制台中禁用缓冲
例子:
这是您的选项1的代码:
#include <stdio.h>
int main() {
int myvariable;
printf("Enter a number:");
fflush( stdout );
scanf("%d", &myvariable);
printf("%d", myvariable);
fflush( stdout );
return 0;
}
这是2:
#include <stdio.h>
int main() {
int myvariable;
setlinebuf(stdout);
printf("Enter a number:");
scanf("%d", &myvariable);
printf("%d", myvariable);
return 0;
}
和3:
#include <stdio.h>
int main() {
int myvariable;
setbuf(stdout, NULL);
printf("Enter a number:");
scanf("%d", &myvariable);
printf("%d", myvariable);
return 0;
}
- 3 回答
- 0 关注
- 623 浏览
添加回答
举报