Here I have provided the C code and it is not print any thing
#include <stdio.h>
int main(){
int i=0;
for(;;){
if(i==10)
continue;
printf("%d ", i);
}
return 0;
}
CodePudding user response:
I believe that you want to stop the loop when i is 10.
int main(){
int i=0;
for(;;){
if(i==10)
break;
printf("%d ", i);
}
printf("\n");
return 0;
}
``
CodePudding user response:
The loop executes printf() 10 times before it goes into an infinite busy loop when i==10. stdout is line buffered by default (see stdout(3)) so it's not being flushed implicitly based on the small size. The cleanest fix is to call fflush():
#include <stdio.h>
int main() {
for(int i = 0;;) {
if(i==10) {
fflush(stdout);
continue;
}
printf("%d ", i);
}
return 0;
}
You could also change the program behavior by moving the increment into for(), and size out of output would cause it to be flushed:
#include <stdio.h>
int main() {
for(int i = 1;; i ) {
if(i!=10)
printf("%d ", i);
}
return 0;
}
