В C++ существует ли достойная функция ожидания?

Я думаю, что ошибка из-за @ property retain для NSInteger. Assign для примитивных значений, таких как BOOL, NSInteger или double. Для объектов используйте retain или copy, в зависимости от того, хотите ли вы сохранить ссылку на исходный объект или сделать его копию.

Здесь NSInteger явно не объект, поэтому вы должны попробовать assign вместо сохранения

48
задан Lightness Races with Monica 2 April 2016 в 04:41
поделиться

8 ответов

вы можете потребовать от пользователя нажать Enter перед закрытием программы ... что-то

#include <iostream>
int main()
{
  std::cout << "Hello, World\n";
  std::cin.ignore();
  return 0;
}

cin читает вводимые пользователем данные, а функция .ignore () cin указывает программе просто игнорировать ввод. Программа будет продолжена после того, как пользователь нажмет "Enter".

Ссылка

63
ответ дан 7 November 2019 в 12:02
поделиться

Появление и исчезновение окна для отображения текста зависит от того, как вы запускаете программу, а не от C ++.

Запускать в постоянной среде командной строки или включать поддержку окон в вашей программе, или используйте sleep или ждите ввода, как показано в других ответах.

20
ответ дан 7 November 2019 в 12:02
поделиться

эквивалент пакетной программы будет

#include<iostream>
int main()
{
    std::cout<<"Hello, World!\n";
    std::cin.get();
    return 0;
}

Дополнительная строка выполняет то же самое, что PAUSE ] делает, ожидает ввода одного символа

13
ответ дан 7 November 2019 в 12:02
поделиться

Синтаксис:

void sleep (беззнаковые секунды);

sleep () приостанавливает выполнение на интервал (секунды). При вызове перехода в спящий режим выполнение текущей программы приостанавливается на количество секунд, указанное в аргументе секунды. Интервал имеет точность только до ближайшей сотой доли секунды или до точности часов операционной системы, в зависимости от того, что менее точно.

Этот пример должен прояснить:

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

int main()
{
   printf("Message 1\n");
   sleep(2); //Parameter in sleep is in seconds
   printf("Message 2 a two seconds after Message 1");
   return 0;
}

Помните, что вам необходимо #include dos.h

РЕДАКТИРОВАТЬ:

Вы также можете использовать winAPI.

VOID WINAPI Sleep(
DWORD dwMilliseconds
);

Функция сна (Windows)

Просто примечание, параметр в функции, предоставляемой winapi, выражается в миллисекундах, поэтому строка сна в приведенном выше фрагменте кода будет выглядят так: "Сон (2000);"

2
ответ дан 7 November 2019 в 12:02
поделиться

Что у вас есть можно написать проще. Вместо:

#include<iostream>
int main()
{
    std::cout<<"Hello, World!\n";
    return 0;
}

write

#include<iostream>
int main()
{
    std::cout<<"Hello, World!\n";
    system("PAUSE");
    return 0;
}

Системная функция выполняет все, что вы ей даете, как если бы это было написано в командной строке. Он приостанавливает выполнение вашей программы во время выполнения команды, поэтому вы можете делать с ней все, что угодно, вы даже можете компилировать программы из своей программы cpp.

4
ответ дан 7 November 2019 в 12:02
поделиться

getchar () дает упрощенный ответ (ожидает ввода с клавиатуры). Перед выходом вызовите Sleep (миллисекунды) для перехода в спящий режим. Функция ожидания (MSDN)

-1
ответ дан 7 November 2019 в 12:02
поделиться

Вы можете использовать sleep () или usleep ().

// Wait 5 seconds
sleep( 5 );
-2
ответ дан 7 November 2019 в 12:02
поделиться

Второе, что нужно изучить (кто-то может поспорить, что это должно быть первое) - это интерфейс командной строки вашей ОС, а также флаги и переключатели компилятора / компоновщика.

-3
ответ дан 7 November 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: