[ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
NapísalOffline : 02.11.2012 14:36 | C++ Výber Ano/Nie v konzole

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


Offline

Skúsený užívateľ
Skúsený užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 11.01.09
Prihlásený: 11.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.11.2012 14:50 | C++ Výber Ano/Nie v konzole

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.11.12
Prihlásený: 25.12.14
Príspevky: 40
Témy: 13 | 13
NapísalOffline : 02.11.2012 15:10 | C++ Výber Ano/Nie v konzole

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 :D písal som to v notepad++ :D


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 16:59 | C++ Výber Ano/Nie v konzole

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


Offline

Užívateľ
Užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 24.08.12
Prihlásený: 09.02.19
Príspevky: 59
Témy: 0 | 0
NapísalOffline : 02.11.2012 18:31 | C++ Výber Ano/Nie v konzole

To co hledáš se jmenuje <curses.h>

http://en.wikipedia.org/wiki/Curses_(pr ... ng_library)


_________________
"Existuje pouze jeden člověk, který má méně přátel než Bill Gates, a tím je Saddám Husajn." (Paul Grayson)
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 18:51 | C++ Výber Ano/Nie v konzole

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


Offline

Skúsený užívateľ
Skúsený užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 11.01.09
Prihlásený: 11.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.11.2012 19:19 | C++ Výber Ano/Nie v konzole

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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 19:43 | C++ Výber Ano/Nie v konzole

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... :)


Offline

Skúsený užívateľ
Skúsený užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 11.01.09
Prihlásený: 11.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.11.2012 19:50 | C++ Výber Ano/Nie v konzole

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?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 20:18 | C++ Výber Ano/Nie v konzole

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


Offline

Skúsený užívateľ
Skúsený užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 11.01.09
Prihlásený: 11.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.11.2012 20:30 | C++ Výber Ano/Nie v konzole

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 20:49 | C++ Výber Ano/Nie v konzole

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


Offline

Skúsený užívateľ
Skúsený užívateľ
C++ Výber Ano/Nie v konzole

Registrovaný: 11.01.09
Prihlásený: 11.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 02.11.2012 21:04 | C++ Výber Ano/Nie v konzole

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.04.12
Prihlásený: 06.01.16
Príspevky: 27
Témy: 6 | 6
Napísal autor témyOffline : 02.11.2012 21:07 | C++ Výber Ano/Nie v konzole

Dobre :)
Diki


 [ Príspevkov: 14 ] 


C++ Výber Ano/Nie v konzole



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

firewall ano/nie?

v Bezpečnosť a firewally

23

3371

20.07.2007 10:40

Gul1

V tomto fóre nie sú ďalšie neprečítané témy.

Overclocking ANO/NIE ??

v nVidia grafické karty

7

719

12.08.2015 9:44

Xaltotun

V tomto fóre nie sú ďalšie neprečítané témy.

T6500 ano ? nie ?

v Procesory

2

910

19.08.2009 19:27

xxxx47

V tomto fóre nie sú ďalšie neprečítané témy.

internet nie ping ano

v Sieťové a internetové programy

5

498

28.09.2012 17:45

cmeliak141

V tomto fóre nie sú ďalšie neprečítané témy.

flash ano ci nie

v Ostatné

5

930

14.07.2006 19:44

Freelan

V tomto fóre nie sú ďalšie neprečítané témy.

NVIDIA GT260 ano nie?

v Grafické karty

21

514

24.02.2013 22:43

Casseus

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

HD ano alebo nie?

v Notebooky a netbooky

2

511

21.11.2011 10:45

jtbs

V tomto fóre nie sú ďalšie neprečítané témy.

full hd ano/nie

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Monitory, televízory a projektory

55

1772

08.10.2012 22:39

Daron

V tomto fóre nie sú ďalšie neprečítané témy.

Traxdata? ano ci nie?

v Úložné zariadenia

2

420

18.07.2012 9:05

Luks

V tomto fóre nie sú ďalšie neprečítané témy.

SLOVANET áno či nie?

v Poskytovatelia internetu

3

600

03.12.2007 13:13

Capone

V tomto fóre nie sú ďalšie neprečítané témy.

3D ano alebo nie ?

v Monitory, televízory a projektory

7

790

11.05.2012 15:31

Johnnny

V tomto fóre nie sú ďalšie neprečítané témy.

Taktovanie procesora ano/nie

v Biosy a ladenie výkonu

4

909

06.01.2008 16:10

Qpkqkma

V tomto fóre nie sú ďalšie neprečítané témy.

Repas áno či nie?

v Notebooky a netbooky

7

483

12.06.2023 22:19

eon5

V tomto fóre nie sú ďalšie neprečítané témy.

BenQ E2200HD ano/nie ???

v Monitory, televízory a projektory

4

1493

17.02.2009 21:01

Maxim

V tomto fóre nie sú ďalšie neprečítané témy.

CD nie DVD ano

v Optické zariadenia

7

879

06.08.2008 13:21

dedko45

V tomto fóre nie sú ďalšie neprečítané témy.

ubuntu nie mandriva ano

v Operačné systémy Unix a Linux

5

836

04.04.2007 1:57

janoja1



© 2005 - 2025 PCforum, edited by JanoF