Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
revanatar
0 / 0 / 0
Регистрация: 28.08.2011
Сообщений: 35
#1

Задержка - C++

29.10.2011, 19:47. Просмотров 2471. Ответов 8
Метки нет (Все метки)

Использую MinGW через NetBeans. Проблема состоит в том что такие команды как cin.get или же getchar() судя по всему игнорируются компилятором, так как в созданном исполняемом файле задержки в консоли нету: выполняется программма и консоль сразу закрывается, как будто и не писал этих команд. Команду же getch() не воспринимает консоль самого NetBeans, впрочем как и printf и scanf - попросту подвисает и выдает бред. Укажите почему так происходит или же предложите аналогичную этим команду. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задержка (C++):

Задержка и язык. - C++
У меня в конце консольных приложениях появляется задержка "Для продолжения..." и изначально русский язык, как убрать это?

Задержка в цикле for - C++
Здравствуйте. Имеется вот такая вот рабочая подпрограмма : void led_per(uint16_t n_led) { ...

Задержка в приложении - C++
Привет всем ) подскажите пожалуйста что можно использовать в виде задержки в приложении вместо sleep так как если его использовать...

Задержка в цикле на С - C++
Доброго времени суток! Подскажите как в консольном Борланде на С сделать пацзц в цикле, что бы выводимая информация была читабельна?

Задержка времени - C++
Здравствуйте! Мне необходимо сделать задержку времени, чтобы перемещение элемента было помедленнее. Пробовала использовать Sleep(), но...

Задержка экрана - C++
Какой командой задерживается окно программы, для того чтобы вылетал в окно эдитора после нажатия любой клавиши, или Enterа?

8
-=ЮрА=-
Заблокирован
Автор FAQ
29.10.2011, 20:23 #2
revanatar, попробуйте system("pause"); //заголовок в stdlib.h
Если юзаем плюсы stdlib можно не подключать, как я понял по практике, нэймспейс уже его содержит..
C++
1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
 
int main()
{
      system("pause");
      return 0;
}
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
29.10.2011, 20:29 #3
есть выход с cin.get():
C++
1
2
std::cin.ignore();
std::cin.get();
и не нужно прибегать к си-шным функциям!
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.10.2011, 20:30 #4
или
std::cin.get();
std::cin.get();
, но лучше игнор.
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
29.10.2011, 20:49 #5
Не понял. Почему не достаточно просто
C++
1
std::cin.get();
?
Почему нужен еще либо ignore либо get?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
29.10.2011, 20:56 #6
В буфере остался перевод строки, который изымается гетом или пропускается игнором. А потом уже ждёшь.
2
revanatar
0 / 0 / 0
Регистрация: 28.08.2011
Сообщений: 35
29.10.2011, 21:23  [ТС] #7
Довольно странно, ничего подобного небыло когда использовал DevC++ который тоже на MinGW.
Ну и всетаки интересно что сделать чтобы сишные функции работали.
0
-=ЮрА=-
Заблокирован
Автор FAQ
29.10.2011, 21:28 #8
revanatar, вчитался в ваш код, простите сначало не так понял, может приведёте сам код для анализа. После scanf в буфере висит '\n' - он то может всё и портит, также на старых компиляторах
висит это
C++
1
2
3
string inp_str;
    cout<<"Enter input string :\n";
    getline(cin,inp_str)
; - два раза Enter жать приходится, вот...
Не зная кода не могу корректно подсказать
Жду фидбэка
0
revanatar
0 / 0 / 0
Регистрация: 28.08.2011
Сообщений: 35
29.10.2011, 21:40  [ТС] #9
Какраз
Код
cin.ignore();
cin.get();
помогли задержать.
Вопрос остается лишь в том как настроить NetBeans чтобы он воспринимал сишные функции при выполнении.

Вот код с учетом вышесказанного, задержка выполняется правильно, один раз.
Код
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream>


using namespace std;

void per(int n, int *mas)
{    int t;
     for(int i=1;i<n;i+=2)
     {t=*(mas+i-1);
     *(mas+i-1)=*(mas+i);
     *(mas+i)=t;}
}

void (*p)(int,int*);

int main()
{
srand(time(0));
int a,i;
cout<<"a=";
cin>>a;
int *mas=new int [a];

p=per;

for (i=0;i<a;i++)
{*(mas+i)=rand()%50,
cout<<*(mas+i)<<" ";}
cout<<"\n\nPosle perestanovki:\n\n";

(*p)(a, mas);

for (i=0;i<a;i++)
{cout<<*(mas+i)<<" ";}

cin.ignore();
cin.get();
delete []mas;
}
0
29.10.2011, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 21:40
Привет! Вот еще темы с ответами:

Задержка вывода - C++
а подскажите как сделать типа цикл но чтобы другая цифра появлялась через секунду Для решения своих проблем создавайте отдельные темы,...

задержка времени - C++
Господа програмисты не подскажите как задержать программу на определённое время.если можно самый примитивный исходник.заранее огромное...

Задержка в микроседундах - C++
Подскажите,можно ли как-нибудь сделать задержку в 30-40 микросекунд?:help:

Задержка выполнения программы - C++
Ребята, помогите найти проблему плз.. Дело в том, что при запуске программы она висит 20 сек, и только потом передается управление...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru