Я думаю, что ошибка из-за @ property
retain
для NSInteger
. Assign
для примитивных значений, таких как BOOL
, NSInteger
или double
. Для объектов используйте retain
или copy
, в зависимости от того, хотите ли вы сохранить ссылку на исходный объект или сделать его копию.
Здесь NSInteger
явно не объект, поэтому вы должны попробовать assign
вместо сохранения
вы можете потребовать от пользователя нажать Enter перед закрытием программы ... что-то
#include <iostream>
int main()
{
std::cout << "Hello, World\n";
std::cin.ignore();
return 0;
}
cin читает вводимые пользователем данные, а функция .ignore () cin указывает программе просто игнорировать ввод. Программа будет продолжена после того, как пользователь нажмет "Enter".
Появление и исчезновение окна для отображения текста зависит от того, как вы запускаете программу, а не от C ++.
Запускать в постоянной среде командной строки или включать поддержку окон в вашей программе, или используйте sleep
или ждите ввода, как показано в других ответах.
эквивалент пакетной программы будет
#include<iostream>
int main()
{
std::cout<<"Hello, World!\n";
std::cin.get();
return 0;
}
Дополнительная строка выполняет то же самое, что PAUSE
] делает, ожидает ввода одного символа
Синтаксис:
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
);
Просто примечание, параметр в функции, предоставляемой winapi, выражается в миллисекундах, поэтому строка сна в приведенном выше фрагменте кода будет выглядят так: "Сон (2000);"
Что у вас есть можно написать проще. Вместо:
#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.
getchar () дает упрощенный ответ (ожидает ввода с клавиатуры). Перед выходом вызовите Sleep (миллисекунды) для перехода в спящий режим. Функция ожидания (MSDN)
Вы можете использовать sleep () или usleep ().
// Wait 5 seconds
sleep( 5 );
Второе, что нужно изучить (кто-то может поспорить, что это должно быть первое) - это интерфейс командной строки вашей ОС, а также флаги и переключатели компилятора / компоновщика.