int main()
{
for (;;)
printf("This is a loop");
//getch();
return 0;
}
Выполняя исполняемый файл изнутри Codeblocks, он ничего не возвращает, но делает программу непригодной для использования, например, зависает программа. Ожидается, что этого не произойдет. Но если исполняемый файл запускается извне (дважды двойным щелчком мыши.exe), он возвращает текст print(). Это означает, что либо системные, либо кодовые блоки не могут обрабатывать этот цикл или исполняемый файл или что исполняемый файл может иметь какую-то ошибку. Но я не понимаю, почему компиляция прекрасна при выполнении из Codeblocks. Сам исполняемый файл является 32-битным (x86), и его запуск с 32-битного или 64-битного cmd не вносит изменений.
Я также пробовал то же самое с затмением и так далее. Но такой же результат для IDE.
stdout
обычно буферизуется до тех пор, пока вы не напечатаете символ новой строки \n
или не вызываете fflush(stdout)
. Кроме того, печать в бесконечном цикле может вызвать другие проблемы в зависимости от того, как stdout
обрабатывается средой IDE.
Я рекомендую вам изменить цикл на
for ( int i = 0; i < 10; i++ )
printf( "This is a loop\n" );
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char command[80], temp[80]; int i, j; for ( ; ; ){ printf("Which operation do you want to perform?\n"); gets(command); /** check if the user want to terminate the program**/ if(!strcmp(command, "quit")) break; } return 0; }