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

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

17 голосов
/ 02 февраля 2011

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

Ответы [ 10 ]

41 голосов
/ 02 февраля 2011

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

getchar();

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

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

6 голосов
/ 03 июня 2014

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

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

Ссылка: sleep () manual

5 голосов
/ 02 февраля 2011

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

3 голосов
/ 19 августа 2016

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

#include <unistd.h>

pause ();

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

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

2 голосов
/ 02 февраля 2011

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

1 голос
/ 11 июня 2016

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

cd\

wallpaper_calculator.exe пауза

1 голос
/ 21 сентября 2013

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

1 голос
/ 02 февраля 2011

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

Пример программы будет выглядеть так:

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

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

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

1 голос
/ 02 февраля 2011

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

0 голосов
/ 19 января 2017

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

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

kbit () function

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

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

//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;

}

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

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

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