Cin >> "exit" – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Cin >> "exit" – C / C++ – Fórum – Programujte.comCin >> "exit" – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Mikos0
Duch
6. 4. 2008   #1
-
0
-

Cawte som novy a zacinam v C++ ztail vnom roby 3 Den a ucim s s Helpu a mam problem. Ako spravim ze ked do consli napisem exit aby program vyplo fungu je to len s jednym tlacitkom napr "e"

// Hlavycka programu

#include <iostream>

using namespace std;
//Deklarujeme si Zaciatok main()
int main (int argc, char *argv[])
{
char koniec; //Deklarujeme si premenu koniec.

koniec = '\0'; //Koniec sa rovan \0;
while (koniec != 'exit') //Zatial ak sa koniec nerovna exitu
{
//Vypise text
cout << "Ahoj ! Toto je moj prvy projekt." << endl;
cout << "Vytvoril som conslou" << endl;
cout << "Napis exit pre vypnutie programu " << endl;
cin >> koniec; //Zapise koniec
}

return 0;//Koniec main()
}

Nahlásit jako SPAM
IP: 80.87.212.–
Ano. Chen........sa ucit............ Python :)
Reklama
Reklama
mephi0
Expert
6. 4. 2008   #2
-
0
-

pridaj tam hore

#include <stdio.h>

a keď budeš chcieť končiť:
if (getch() = 'e')

return 0;


(dufam, že to funguje)

Nahlásit jako SPAM
IP: 85.248.56.–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Wizard0
Stálý člen
6. 4. 2008   #3
-
0
-

To Mikos : no takze ty chces po napisani 'exit' vypnut conzolu? nefunguje ti to asi preto ze 'koniec' nieje pole a v cykle while mas jednoduche uvodzovky (tie sa pouzivaju pri znakoch nie pri retazci) musis tam dat normalne (").

Nahlásit jako SPAM
IP: 85.216.199.–
Matrix17
~ Anonymní uživatel
286 příspěvků
6. 4. 2008   #4
-
0
-

To Wizard : I kdyby předělal ten char na pole tak by stejně nemohl použít operator porovnání.

To Mikos : Pokud bys trval na tom, že chceš aby ti uživatel zadal slovo "exit" a pak se ukončil program. Můžeš použít například třídu string.
Takto:



#include <string>
string retezec;
while (retezec != "exit") {
...
}

Nahlásit jako SPAM
IP: 85.207.17.–
tmi0
Věrný člen
6. 4. 2008   #5
-
0
-

To Matrix17 : tak nevim ale rekl bych ze tim ze pouzije tridu string si vubec nepomuze. totiz porovnavat s retezcem pomoci operatoru != porovnava adresy, coz v tuto chvili nema smysl (teda pokud trida string ten operator nepretezuje, o cemz pochybuju). resenim je porovnat cyklem znak po znaku nebo pouzit funkce strcmp (ktera dela vpodstate to samy)

Nahlásit jako SPAM
IP: 213.226.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Matrix17
~ Anonymní uživatel
286 příspěvků
7. 4. 2008   #6
-
0
-

To tmi : On si tím pomůže jelikož třída string opravdu operátory porovnání přetěžuje. Pochybovat o tom můžeš ale taky si to můžeš vyzkoušet.

Nahlásit jako SPAM
IP: 85.207.17.–
tmi0
Věrný člen
7. 4. 2008   #7
-
0
-

To Matrix17 : aha tak sorry jen mi to prislo nepravdepodobny. vyzkouset si to nemuzu neb tu nemam compiler

Nahlásit jako SPAM
IP: 213.226.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Mikos0
Duch
7. 4. 2008   #8
-
0
-

Dik necakal som take rychle odpovede :smile2:
Ale aj tak som nicomu nepochopil bohuzial niesom na takej vysokej urovny je to dost velky rozdiel medzy GML ale aj tak ma to neodrzdzuje.
BTW: A ten kurz alebo co toje ako sa doneho zapojim ? :smile1:

Nahlásit jako SPAM
IP: 80.87.212.–
Ano. Chen........sa ucit............ Python :)
Matrix17
~ Anonymní uživatel
286 příspěvků
7. 4. 2008   #9
-
0
-

To Mikos : Tak napiš co na tom nechápeš. To jak sme diskutovali toho si nemusíš všímat.

Stačí svůj kód takhle doplnit:



#include <iostream>
#include <string>

int main()
{
string retezec;

while (retezec != "exit") {
//nějaký ty výpis pomocí objektu cout
getline(cin, retezec); //načte do retezec text
}
return 0;
}


Hotovo nic na tom není. Případně si sežeň nějakou knížku nebo nějakej tutoriál na netu (např. tady na programujte).

Nahlásit jako SPAM
IP: 85.207.17.–
tmi0
Věrný člen
8. 4. 2008   #10
-
0
-

jenom bych doplnil ze to funguje diky specialite tridy string (tedy diky tomu ze retezec je typu string), zadne jine pole takhle porovnavat nemuzes.

Nahlásit jako SPAM
IP: 213.226.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Mikos0
Duch
8. 4. 2008   #11
-
0
-

Dakujem vsetkym ale rozhodol som sa ze zostanem pri lahsom GML a neskor prejdem na C++ aspon som sa naucil ten zaklad teoriu atd... ael aj tak budem tento Web navstevovat a string je retazec to znamena ze tam mozebyt toho viac pospajane ze ?

Nahlásit jako SPAM
IP: 80.87.212.–
Ano. Chen........sa ucit............ Python :)
Matrix17
~ Anonymní uživatel
286 příspěvků
8. 4. 2008   #12
-
0
-

To Mikos : String je třída nikoli řetězec. Je definována v knihovně string. Tato třída má definované kontruktory, přetěžuje některé operátory atd. Zjednodušeně řečeno je to "řetězcová proměnná" (doufám, že jsem tímto výrokem nikoho příliš nerozčílil). Velmi totiž ulehčuje práci s řetězci.
Tady je o něm něco málo (případně zkus google):
http://www.builder.cz/art/cpp/cpp_string.html
http://www.cplusplus.com/reference/string/string/

Nahlásit jako SPAM
IP: 85.207.17.–
tmi0
Věrný člen
10. 4. 2008   #13
-
0
-

To Mikos : na gml kasli a zacni s obycejnym C. tam te nebudou mast objekty a pochopis jak fungujou veci nizsi urovne. v gml nepochopis nic protoze uz od zacatku pises highlevelove.

Nahlásit jako SPAM
IP: 213.226.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
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, 83 hostů

Moderátoři diskuze

 

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