Компиляция и запуск бесконечного цикла с кодовыми блоками

0
int main()
{
for (;;)
    printf("This is a loop");
    //getch();
return 0;
}

Выполняя исполняемый файл изнутри Codeblocks, он ничего не возвращает, но делает программу непригодной для использования, например, зависает программа. Ожидается, что этого не произойдет. Но если исполняемый файл запускается извне (дважды двойным щелчком мыши.exe), он возвращает текст print(). Это означает, что либо системные, либо кодовые блоки не могут обрабатывать этот цикл или исполняемый файл или что исполняемый файл может иметь какую-то ошибку. Но я не понимаю, почему компиляция прекрасна при выполнении из Codeblocks. Сам исполняемый файл является 32-битным (x86), и его запуск с 32-битного или 64-битного cmd не вносит изменений.

Я также пробовал то же самое с затмением и так далее. Но такой же результат для IDE.

  • 2
    этот код предназначен для вечной? То, как вы это написали, так и будет. Там нет ничего, чтобы остановить цикл
  • 0
    Привет DJ Burb, спасибо за комментарий. Это просто цикл тестирования; он может работать без каких-либо условий завершения, в противном случае для выхода из программы или цикла требуется какое-либо ручное вмешательство. Я знаю это. Для вашей информации: пожалуйста, обратите внимание на следующее: #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; }
Показать ещё 3 комментария
Теги:
for-loop
codeblocks

1 ответ

1
Лучший ответ

stdout обычно буферизуется до тех пор, пока вы не напечатаете символ новой строки \n или не вызываете fflush(stdout). Кроме того, печать в бесконечном цикле может вызвать другие проблемы в зависимости от того, как stdout обрабатывается средой IDE.

Я рекомендую вам изменить цикл на

for ( int i = 0; i < 10; i++ )
    printf( "This is a loop\n" );
  • 0
    @ user3386109 Большое спасибо за ответ. Хотя это правильно, но я искал решение с бесконечным циклом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню