Vytvoření nekonečného cyklu v C – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytvoření nekonečného cyklu v C – C / C++ – Fórum – Programujte.comVytvoření nekonečného cyklu v C – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
gumitek0
Duch
6. 12. 2011   #1
-
0
-

Dobrý den,

mám dotaz už nevím kde ho směřovat tak doufám že mi zde pomůžete ;-)

Jedná se mi o to:

Jak vytvořit nekonečný cyklus pro random "kostky" aby mi to generovalo nové a nové čísla, a mezerníken nebo jinou klávesou pozastavil generaci a další klávesou by zase pokračoval dál ten cyklus a pak kdybych nechtěl už dál generovat tak třeba klávesou Esc ukoncil program. příklad máte jak by jste si pustili video v přehrávači a klávesou pozastavíte a pak zase pustíte a jak vás to nebaví ukončíte xD

děkuji za každý nápad.

Nahlásit jako SPAM
IP: 93.91.240.–
yaqwsx+9
Posthunter
6. 12. 2011   #2
-
+1
-
Zajímavé

Nekonečný cyklus? Není nic jednoduššího

while(true)	//v případě C to bude while(1)
{
	//tvůj kód
}

Na začátku cyklu ošetříš stisky kláves a zareaguješ. Z cyklu můžeš vyskočit pomocí break, popř. ukončit celou funkci pomocí return.

Nahlásit jako SPAM
IP: 85.160.113.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
gumitek0
Duch
6. 12. 2011   #3
-
0
-

jop tak na tohle sem přišel, ale nevím jak na to pozastavování, a vyskakování z toho cyklu... Tak bych prosil ještě o nějakou tu indicii... 

Nahlásit jako SPAM
IP: 93.91.240.–
devilfish0
Stálý člen
6. 12. 2011   #4
-
0
-

Sak spravis si nejaku funkciu kde budes mat ten cyklus ked ho ukoncis a znovu budes chcet spustit tak znova zavolas tu funkciu....Ako vyskocis z cyklu uz bolo spomenute vyssie (break)

Nahlásit jako SPAM
IP: 188.121.172.–
yaqwsx+9
Posthunter
6. 12. 2011   #5
-
0
-

#3 gumitek
Záleží v čem píšeš předpokládám, že konzole. V ní se reakce na stisk klávesy provádí speciálními, platformově závislými funkcemi.

Nahlásit jako SPAM
IP: 85.160.113.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
gumitek0
Duch
6. 12. 2011   #6
-
0
-

no dělám typ konzole, a tam se to zaznamenává stisk klávesy pomocí getchar(); ale nejde mi do hlavy jak mám udělat to pozastavení a znovu pokračovaní toho while cyklu =/

Nahlásit jako SPAM
IP: 93.91.240.–
crazy
~ Moderátor
+10
Grafoman
6. 12. 2011   #7
-
+1
-
Zajímavé

no getchar ale nereaguje na stisk klávesy, ale načte 1 znak ze standardního vstupu... funkce, která reaguje na stisk klávesy je například kbhit() z knihovny conio.h

Nahlásit jako SPAM
IP: 147.32.113.–
All you need is vision and time.
yaqwsx+9
Posthunter
6. 12. 2011   #8
-
+1
-
Zajímavé

 Nejsem si teď z hlavy jistý, jestli se getchar chová tak, jak předpokládáš - pokud si pamatuju, tak vstup musíš potvrdit enterem. Pokud použiješ getchar, tak program čeká na zadání znaku do standardního vstupu. Dokud nezadáš, tak čeká, tudíž nemůže generovat čísla. Musel by jsi použít jinou funkci, ale z hlavy, nevím kterou, která nečeká a v případě "nestisku" klávesy nic nevrací.

while(true)
{
	char c = getPressedKey();//Nějaká funkce, která zjistí stisknutou klávesu
	if(c == něco)//požadavek na ukončení
	{
		break;
	}
	if(c = něco)//Požadavek na pauzu
        {
              continue();//Přeskočení cyklu
         }
         generujCislo();
}
Nahlásit jako SPAM
IP: 85.160.113.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
crazy
~ Moderátor
+10
Grafoman
6. 12. 2011   #9
-
+1
-
Zajímavé

#7 crazy
ale funkce kbhit také nepůjde použít tak, jak by si potřeboval... čeká na stisk klávesy (ale nemusíš potvrzovat enterem)

Nahlásit jako SPAM
IP: 147.32.113.–
All you need is vision and time.
gumitek0
Duch
6. 12. 2011   #10
-
0
-

Díky chlapci za vaše rady, zítra to ráno nějak poskládám a pak se pochlubím jak to dopadlo ;-). Takže děkuji a přeji dobrou noc =)

Nahlásit jako SPAM
IP: 93.91.240.–
gumitek0
Duch
7. 12. 2011   #11
-
0
-

Lidi mám docela problém a nevím jak to vyřešit, jestli tam vidíte nějakou chybu upozorněte mě. Děkuji.

s touhle funkcí pracuji po prvé..

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
void random ();

int main()
{
srand(time(NULL));
while(1)
{
           
	char c;
    c = getPressedKey();
	if(c == 'e')
	{
		break;
	}
	if(c == 'p')//Požadavek na pauzu
        {
              continue;
         }
         system("CLS");
         random ();
         } 
}


Chyby :

[Linker error] undefined reference to `getPressedKey'

ld returned 1 exit status

Nahlásit jako SPAM
IP: 193.84.207.–
KIIV
~ Moderátor
+43
God of flame
7. 12. 2011   #12
-
0
-

bude v nejaky libce, co nemas prilinkovanou

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
gumitek0
Duch
7. 12. 2011   #13
-
0
-

To máš asi pravdu.. Ale vědět jaká to je. =( V tomhle nevím a asi hledám špatně na tom googlu.

Nahlásit jako SPAM
IP: 193.84.207.–
KIIV
~ Moderátor
+43
God of flame
7. 12. 2011   #14
-
0
-

musis najit v kterym include je prototyp... nebo to hlasi neco o implicitnim prototypu pri kompilaci? Kazdopadne kdyz tam mas uz conio.h tak muzes zkusit funkce z nej.

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
gumitek0
Duch
7. 12. 2011   #15
-
0
-

#14 KIIV
A můžeš mi dát nějaký návrh řešení? Byl bych ti vděčný..

Nahlásit jako SPAM
IP: 193.84.207.–
liborb
~ Redaktor
+18
Guru
7. 12. 2011   #16
-
0
-

Jestli on to yaqwsx nemyslel tak nějak obecně (jako princip):

getPressedKey();//Nějaká funkce, která zjistí stisknutou klávesu

asi ti bude stačit funkce kbhit.

Nahlásit jako SPAM
IP: 78.80.52.–
gumitek0
Duch
8. 12. 2011   #17
-
0
-

Chci se zeptat tato funkce v C nefunguje?

 c = getPressedKey();
Nahlásit jako SPAM
IP: 93.91.240.–
zlz
~ Anonymní uživatel
634 příspěvků
8. 12. 2011   #18
-
0
-

Nějaká funkce, která zjistí stisknutou klávesu

Ta funkce neexistuje. Místo toho si tam dopiš nějakou funkci, která zjistí stisknutou klávesu! Třeba getch.

Nahlásit jako SPAM
IP: 213.211.51.–
gumitek0
Duch
9. 12. 2011   #19
-
0
-

ano ale getch, čeká na stisklou klávesu, ale já bych tak nejlépe potřeboval co by zjistilo že se stiskla nějaká klávesa a jak by nebyla zjištěna stisklá klávesa cyklus by pokračoval dál. Víte o něčem takovém?

Nahlásit jako SPAM
IP: 93.91.240.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 29 hostů

Podobná vlákna

Preruseni nekonecneho cyklu — založil Gadael

#define v cyklu — založil Merik

FOR - proměnné v cyklu — založil Michael

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý