作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想制作一个类似于 printf 的函数,但通过使用 double for 使文本显示缓慢,一个用于打印字符,一个用于花费时间:
char phrase[30]={"Printf random"};
for(int a=0;a<=30;a++){
printf("%c",phrase[a]);
for(int t=0;t<=1000000;t++){
int f;
f++;
}
}
但是当我运行时,一开始需要几秒钟(第二个 for),然后它会打印所有短语。
为什么每次第一个输入时它不进入第二个?也许一旦程序第一次计算了秒,就不需要时间再次计算它了?我该如何修复它?
最佳答案
首先,在你的代码中,说
for(int a=0;a<=30;a++){
你差一分,它会调用 undefined behavior 。应该是
for(int a=0;a<30;a++){
也就是说,您需要刷新输出缓冲区才能将缓冲区内容实际发送到关联的文件。否则,标准输出实际上是行缓冲的,它不会自动刷新内容。所有的内容都会被存储在缓冲区中,当程序即将结束时,所有打开的缓冲区都会被刷新,然后整个内容就会一起出现。
关于c - 慢慢出现printf,在C99中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35478083/
我是一名优秀的程序员,十分优秀!