Как сделать паузу в C?

Я новичок C. я запускаю программу C, но окно закрывается слишком быстро, прежде чем я могу что-либо увидеть. Как я могу приостановить окно?

10 ответов


вы можете поставить

getchar();

перед возвратом из функции main. Это будет ждать ввода символов перед выходом из программы.

в качестве альтернативы вы можете запустить свою программу из командной строки, и вывод будет виден.


Если вы хотите просто задержка закрытие окна без фактического нажатия кнопки (getchar() способ), вы можете просто использовать sleep() метод; он принимает количество секунд вы хотите спать в качестве аргумента.

#include <unistd.h>
// your code here
sleep(3); // sleep for 3 seconds

ссылки: sleep() руководство


это консольная программа, работающая в Windows? Если это так, запустите его с консоли, которую вы уже открыли. т. е. запустите "cmd", затем перейдите в свой каталог, который имеет.exe в нем (с помощью команды cd), затем введите имя exe-файла. Окно консоли останется открытым.


Если вы делаете программу окна консоли, вы можете использовать system ("пауза");


в системах POSIX лучшее решение, похоже, использует:

#include <unistd.h>

pause ();

если процесс получает сигнал, эффект которого заключается в его завершении (обычно путем ввода Ctrl+C в терминале), то pause не возвратит и процесс эффектно будет прекращен этим сигналом. Более продвинутое использование-использовать функцию улавливания сигналов, вызываемую при получении соответствующего сигнала, после чего pause возвращает возобновление процесс.

Примечание: использование getchar() не будет работать стандартный ввод перенаправляется; следовательно, это более общее решение.


Я предполагаю, что вы находитесь в Windows. Вместо того, чтобы пытаться запустить программу, дважды щелкнув по ее значку или нажав кнопку в IDE, откройте командную строку, компакт-диск в каталог, в котором находится ваша программа, и запустите ее, введя ее имя в командной строке.


getch() также может использоваться, который определен в conio.h.

пример программы будет выглядеть следующим образом:

#include <stdio.h>
#include <conio.h>

int main()
{
    //your code 
    getch();
    return 0; 
} 

getch() ждет ввода символов с клавиатуры (не обязательно вводить ключ).


вы также можете просто использовать system("pause");


хорошая работа я вспомнил о пакетных файлах DOS. Вообще не нужен Getchar (). Просто написать пакетный файл, чтобы изменить каталог (CD) в папку, где находится программа. введите имя программы exe и в следующей строке введите pause. пример:

cd\

wallpaper_calculator.исполняемый пауза


для Linux; getchar() все, что вам нужно.

Если вы находитесь на Windows, проверьте следующее, Это именно то, что вам нужно!

функция kbit ()

  • функция kbhit () используется для определения, была ли нажата клавиша или нет.
  • Чтобы использовать kbhit () в C или C++ prorams, вы должны включить файл заголовка "conio.ч."

например, посмотрите, как это работает в следующем программа;

//any_key.c

#include <stdio.h> 
#include <conio.h>

int main(){

    //code here
    printf ("Press any key to continue . . .\n");
    while (1) if (kbhit()) break; 
    //code here 
    return 0;

}

когда я компилирую и запускаю программу,этой что я вижу.

только когда пользователь нажимает только одну клавишу с клавиатуры,kbhit() возвращает 1.