Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Autor | Správa |
---|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
Ahoj,
Učím sa v C++, no neviem si rady s výberom možnosti Ano/Nie.
napr.
"Chcete otvoriť notepad ? Ano/Nie"
Potrebujem vybrať jednu z možností, len zo šípkami a enterom, ako na to???
Dúfam, že ste pochopili čo myslím....
Dakujem
|
|
Registrovaný: 11.01.09 Prihlásený: 11.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
A mas uz spravene nejake menu? ( pokial sa bavime o konzole ) Ono sa to riesi tak, ze "vykreslis" si v textovom rezime nejake menu - na to pouzijes funkcie pre terminal, ktore ti ponuka konkretny operacny system, ktory pouzivas - pricom zvolena polozka bude mat napr inu farbu pozadia, ako ostatne ( to uz zalezi od toho, ako si menu navrhnes, ber to len ako priklad ) a potom cakas na vstup z klavesnice. Pokial to bude smerova sipka, tak cele menu prekleslis tak, ze aktualnu polozku zmenis podla stlaceneho klavesu a opat cele menu prekreslis.
Ak stalcis enter, tak sa vykona akcia podla toho, ci je aktualna polozka "ano" alebo "nie".
Najjednoduchsie by to asi bolo tak, ze by si vypisoval len v jednom riadku bud ano alebo nie. A pri stlaceni sipky by si len prepisal text na opacny.
|
|
Registrovaný: 01.11.12 Prihlásený: 25.12.14 Príspevky: 40 Témy: 13 | 13 |
no tak veľmi neovládam c++ ale som to spravil v C niekde si na google pozri funkcie ako je to pri printf a scanf:
Kód: #include "stdio.h"
char c;
int main() { printf("Chcete vytvorit notepad? Y/N\n"); scanf("%s", &c) if (c == 'y' || c == 'Y) { //vytvorenie notepadu } else if (c == 'n' || c == 'N') { system("PAUSE"); } else { printf("Nesprávny výber.\n\n"); system("PAUSE"); } getchar(); return 0; }
neviem či to je dobre ale je to robené narýchlo písal som to v notepad++
|
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
Fico : Menu nemam, chcel by som to takto do riadku, ako si to napísal...Náhodou kód nemáš / nevieš?
MasterMatoSK : Takto som to riešil skôr, no chcem prejsť len na šípky a enter...
Diki
|
|
Registrovaný: 24.08.12 Prihlásený: 09.02.19 Príspevky: 59 Témy: 0 | 0 |
_________________ "Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson) |
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
faraon : Diki moc presne to som hľadal .Ešte potrebujem jednu vec, mam program na vyberanie farieb v cmd, a farby tam vyberam tak, že použijem príkaz : system ("color xy"); namiesto xy sa zadavaju 2 hexidecimálne čisla, no neviem ako ich tam po ich načítaní vložiť, skúšal som : system("color" << a <<); no nefunguje to...vieš mi poradit? A este jedna vec, na konci programu je otazka, či tato farba vyhovuje a neviem, ako vratiť program späť na začiatok ako odpoveď je nie...
Vdaka
|
|
Registrovaný: 11.01.09 Prihlásený: 11.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Pouzi stringstream. Example:
Kód: #include <iostream> #include <string> #include <sstream>
using namespace std;
int main() {
stringstream ss; string result, cislo1, cislo2;
cislo1 = "00"; cislo2 = "FF";
ss << "color " << cislo1 << cislo2; result = ss.str();
cout << result;
return 0; } Output: Kód: color 00FF
|
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
No hej, ale ja potrebujem ten result vložiť do príkazu : system("result"); napr. system("color 00FF"); a ja neviem ako ho tam vlozit... A s tým vrátenim programu nevieš ako???
Vdaka...
|
|
Registrovaný: 11.01.09 Prihlásený: 11.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
To su zaklady, myslel som, ze pridat do mojho kodu nieco taketo:
Kód: system( result.c_str() );
nebude problem ( i ked fajn, beriem, mozno si este s typom string nepracoval ).
A to iste sa tyka aj toho vratenia na zaciatok v programe. Pouzi cykly, opat sa jedna o zakladny kamen jazyka. Ak nevies zaklady, preco sa pustas do niecoho vacsieho?
|
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
Super funguje to Vďaka...
No takto, ja ešte len začínam s programovaním, a string som ešte ani nevidel, ak mam pravdu povedať, a taktiež cykly ešte neviem, a v škole nas učia zatiaľ iba switch, a mna to celkom chytilo, tak skúšam niečo nové...
O cykloch som našiel toto :
Cyklus while – je to cyklus, pri ktorom sa najprv overuje podmienka ( while = pokiaľ,ak ) a až potom ak platí sa vykonáva cyklus. Znamená to teda, že cyklus nemusí v programe prebehnúť ani raz ak podmienka nieje splnená. Temto cyklus sa používa vtedy, ak nepoznáme počet priechodov cyklu. Syntax je nasledovný:
while(i<10){
i++;
}
while(i<10) je overenie podmienky ak platí, že i je menšie ako 10 tak sa vykonávajú ďalej funkcie napísane v tele cyklu. V prípade cyklu while je premenná, ktorá sa zvyšuje je umiestená v tele cyklu.
No nehodí sa mi to, lebo ja podmienku určujem až na konci programu, a musí sa to vratiť takmer úplne na začiatok...
napr. na konci je otázka: Chcete dalej pocitat? A/N : ... Ak áno, tak sa program musí vratiť na začiatok...
Poradiš mi ešte?
Diki
|
|
Registrovaný: 11.01.09 Prihlásený: 11.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Tak v pripade, ze sa ucis sam dopredu, OK, preto este mam pochopenie ( tiez som sa tak ponahlal, ale raz prisiel cas, ked som pochopil, ze vsetko ma svoj cas a netreba predbiehat ) a jasne, ze poradim.
Vyriesis to kludne aj s cyklom while, kde sa podmienka overuje na zaciatku. Vytvoris si jednu premennu, ktora bude obsahovat bud logicku jednotku - co znaci, ze program ma pokracovat, alebo logicku nulu - co znaci, ze program sa uz vratit nema, ale ma sa ukoncit, pripadne pokracovat dalej mimo cyklu.
Kód: int main() { int pokracovat = 1; // pre jednoduchost nam staci typ int
while( pokracovat == 1 ) { // tu nahadz vsetko, co sa ma opakovat
// ...
if ( nieco == niecoDolezite ) // tu pride podmienka, ktora urci, ze program pokracovat uz nema pokracovat = 0;
}
return 0;
}
Cyklus sa bude stale opakovat, pokial nenastavis premennu pokracovat na nulu. To je cele.
|
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
Aha, už tomu rozumiem
Veľmi pekne ti dakujem veľká vďaka...
Nechcem zakladať novú tému, tak len tak odveci, kamarat mi poslal poškodený notebook, lebu mu nešiel spustiť windows, a keď som vytahoval cez Linux LiveCD z HDD kamošove dokumenty, tak som v DiskUtlility zistil, že tam ma niekoľko (pomerne dosť) chybných sektorov, nevieš ako by som ich mohol obísť? (aby sa do nich už nič neukladalo)
Ešte raz veľká vďaka
|
|
Registrovaný: 11.01.09 Prihlásený: 11.01.25 Príspevky: 1395 Témy: 10 | 10 Bydlisko: Hrinova |
Len si smelo zaloz novu temu, na to tu je forum. Ked to zalozis v spravnej sekcii, urcite ti poradi viac ludi ako tuna, kde sa riesia uplne ine veci. A ak bude mat niekto v buducnosti podobny problem, tak to asi nebude hladat v sekcii programovanie.
|
|
Registrovaný: 02.04.12 Prihlásený: 06.01.16 Príspevky: 27 Témy: 6 | 6 |
Dobre
Diki
|
|
Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
|