Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2008, 20:00   #1
JOFRIF
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 164
По умолчанию Бесконечный цикл(visual c++)

Написал прогу, скажем немного странноватую, которая включает бесконечный цикл при вводе любой буквы кроме 's'. Вопрос можно ли остановить этот цикл. (помогает только перезагрузка)
Код:
#include <iostream.h>
void main()
{
	int beskonechniy_zikl;
	char anykey;
	cout<<"\t\tThis thing will make you insane!!!"<<endl;
	cout<<"Press any letter"<<endl;
	cout<<"Tos stop this shit press 's'"<<endl;
	cin>>anykey;
	do              
	{
		if (anykey!='s')
		{
			for (beskonechniy_zikl=1;beskonechniy_zikl<2;)
			{
				cout<<"Soon you will be insane";
				cout<<'\a';
				beskonechniy_zikl++;
			}
		}
	}
	while(anykey!='s');
}
JOFRIF вне форума Ответить с цитированием
Старый 09.08.2008, 22:00   #2
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

всмысле остановить? что ты вообще хочешь сделать. зачем тебе цикл бесконечный? (кривой кстати, цикл)
vvviperrr вне форума Ответить с цитированием
Старый 09.08.2008, 22:36   #3
Rembo
Форумчанин
 
Аватар для Rembo
 
Регистрация: 29.10.2007
Сообщений: 628
По умолчанию

Если цикл бесконечный, то после запуска программы цикл будет выполняться бесконечно, следовательно его не остановить... Вы уж извините, но прога действительно очень странная... И вопросы у вас какие-то не понятные
Rembo вне форума Ответить с цитированием
Старый 10.08.2008, 00:23   #4
JOFRIF
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 164
По умолчанию

Программа написана для тренировки пальцев и кодерских мозгов.
Спасибо за ответы. Кстати можете откомпилировать, прога рабочая.
(Перезагрузка помогает)
JOFRIF вне форума Ответить с цитированием
Старый 10.08.2008, 01:06   #5
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Ты ловишь нажатие клавиши только 1 раз.
Попробуй так:
Код:
#include <iostream.h>
void main()
{
	int beskonechniy_zikl;
	char anykey;
	cout<<"\t\tThis thing will make you insane!!!"<<endl;
	cout<<"Press any letter"<<endl;
	cout<<"Tos stop this shit press 's'"<<endl;
        for(;;)
        {
          while(!anykey = getch())
            { 
              cout<<"Soon you will be insane";
              cout<<'\a';
              beskonechniy_zikl++;
            }
          if (ch == "s") break;
         }
}
P.S. Товарищ писал онлайн, так что не факт, что будет работать
Но принцип--такой

Последний раз редактировалось NikLik; 10.08.2008 в 01:18.
NikLik вне форума Ответить с цитированием
Старый 10.08.2008, 02:07   #6
JOFRIF
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 164
По умолчанию

Цитата:
P.S. Товарищ писал онлайн, так что не факт, что будет работать
Но принцип--такой
Что смог починил, а вот что такое getch и с чем его едят я не знаю, так как работаю в среде Visual c++ а не Borland, но все равно спасибо.
Код:
#include <iostream.h>  
void main()  
{ 
	char ch;
    int beskonechniy_zikl; 
    char anykey; 
    cout<<"\t\tThis thing will make you insane!!!"<<endl; 
    cout<<"Press any letter"<<endl; 
    cout<<"Tos stop this shit press 's'"<<endl; 
        for(;;) 
        { 
          while(!anykey == getch()) 
            {  
              cout<<"Soon you will be insane"; 
              cout<<'\a'; 
              beskonechniy_zikl++; 
            }  
          if (ch == 's') break;  
         }  
}
c:\projects\bezkonechniy\s.cpp(12) : error C2065: 'getch' : undeclared identifier
Error executing cl.exe.

bezkonechniy.exe - 1 error(s), 0 warning(s)
JOFRIF вне форума Ответить с цитированием
Старый 10.08.2008, 13:01   #7
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2JOFRIF какая разница в какой среде работаешь. и там и там getch() лежит в conio.h
vvviperrr вне форума Ответить с цитированием
Старый 13.08.2008, 21:52   #8
kezman
Пользователь
 
Аватар для kezman
 
Регистрация: 09.07.2008
Сообщений: 26
По умолчанию

А не проще написать так :
Код:
#include <iostream>
using namespace std;
int main()
{
char a;
while(1)
{
   cin>>a;
   if(a=='s')
   {
         return 0;
    }
}
return 0;
}
kezman вне форума Ответить с цитированием
Старый 19.08.2008, 18:13   #9
LliriK_DFN
Новичок
Джуниор
 
Регистрация: 19.08.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от kezman Посмотреть сообщение
А не проще написать так
Не думаю, что это может быть названо "проще"...
Конструкция cin>>a; ожидает пользовательского ввода, т.о. каждый шаг цикла будет ждать пока пользователь что-нибудь нажмёт.
LliriK_DFN вне форума Ответить с цитированием
Старый 26.08.2008, 16:45   #10
TitanicMan
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 15
По умолчанию

Можно в цикл включить клавиатурный перехватчик, реализуется это одной API функцией, прада не помню какой... В MSDN'e найдешь
TitanicMan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бесконечный цикл Эдуард Общие вопросы C/C++ 4 03.04.2008 17:28
Visual c++ 2005 и Visual c++ 6 это разные версии или нет? Руслантус Свободное общение 3 30.11.2007 19:42
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34