Forum » Programiranje » [c++] vprasanje
[c++] vprasanje
NEO_ ::
Hi all
nisem neki hard c++ coder pa mam eno vprasanje.
sem ze vprasal strica gugla pa mi dal pametnega odgovora :))
Koda:
Ta program se mi vedno zrusi in sicer pri tisti cin.getline() funkciji. Probal sem tudi z getline funkcijo in je enak ucinek. Uporaba cin >> pri citanju ne pride v postev, saj moram prebrati stavek vse do '\n' (endline). Ta problemcek sem odkril, ko sem kolegu razhrosceval en programcic.
Ko pa dam funkcijo cin.getline() pred cin >> a , dela "normalno" :)
Bi lahko kdol kaj vec razlozil o tem. Kaki uprabni linki ??
edit: uporabljam Dev-C++ 4.9.9.2
lp
nisem neki hard c++ coder pa mam eno vprasanje.
sem ze vprasal strica gugla pa mi dal pametnega odgovora :))
Koda:
#include <iostream> using namespace std; int main () { char niz[20]; int a; cout << "Vpisi stevilo: "; cin >> a; cout << "Vpisi besedo: "; cin.getline(niz,20,'\n'); system("pause"); return 0; }
Ta program se mi vedno zrusi in sicer pri tisti cin.getline() funkciji. Probal sem tudi z getline funkcijo in je enak ucinek. Uporaba cin >> pri citanju ne pride v postev, saj moram prebrati stavek vse do '\n' (endline). Ta problemcek sem odkril, ko sem kolegu razhrosceval en programcic.
Ko pa dam funkcijo cin.getline() pred cin >> a , dela "normalno" :)
Bi lahko kdol kaj vec razlozil o tem. Kaki uprabni linki ??
edit: uporabljam Dev-C++ 4.9.9.2
lp
"nothing is impossible"
- spremenilo: NEO_ ()
Gundolf ::
Zruši se ti ali gre enostavno mimo branja besede?
Ker ti prebereš le število, izpustiš pa new-line znak, ki mu sledi. Zato ti drugo branje prebere še prvi new-line in gre naprej. Ne morem ti reči kako je sicer pravilno to narest, ker ni le enega načina. V tvojem enostavnem primeru bo najbolje če za branjem številke (pri tem, da upaš. da uporabnik ne bo vpisal črk) uporabiš funkcijo cin.ignore(9999, '\n').
Ker ti prebereš le število, izpustiš pa new-line znak, ki mu sledi. Zato ti drugo branje prebere še prvi new-line in gre naprej. Ne morem ti reči kako je sicer pravilno to narest, ker ni le enega načina. V tvojem enostavnem primeru bo najbolje če za branjem številke (pri tem, da upaš. da uporabnik ne bo vpisal črk) uporabiš funkcijo cin.ignore(9999, '\n').
Fury ::
Men se ne usuje, gre samo mim. Verjetno je res to narobe da ti \n ostane od prej...
Sicer pa mislim da vecina ljudi k uporabljajo console IO uporablja print/scan druzino funkcij (C) ker so pac 4234x bl ql za tole :)
Sicer pa mislim da vecina ljudi k uporabljajo console IO uporablja print/scan druzino funkcij (C) ker so pac 4234x bl ql za tole :)
OwcA ::
Ampak niso C++.
Za tako preproste operacije so stream-i res malo okorni, ampak 4235x bolj grdo je pa mešat oboje.
Za tako preproste operacije so stream-i res malo okorni, ampak 4235x bolj grdo je pa mešat oboje.
Otroška radovednost - gonilo napredka.
NEO_ ::
Gundolf mas prav, program se ne sesuje samo preskoci funkcijo. My mistake
Ta simple program sem dal samo kot primer. V resnici moram, bol komplicirano stvar postimat.
No bom ze nekako preprical g. Gugla da mi bo povedal odgovor :)
Ce se kdo kaj pametnega spomni...
lp
Ta simple program sem dal samo kot primer. V resnici moram, bol komplicirano stvar postimat.
No bom ze nekako preprical g. Gugla da mi bo povedal odgovor :)
Ce se kdo kaj pametnega spomni...
lp
"nothing is impossible"
Zgodovina sprememb…
- spremenilo: NEO_ ()
Gundolf ::
Pa sem že mislu da sem ti jaz dal pameten odgovor... No, kakor hočeš.
In ne, C-jevske funkcije niso nič bolj fajn, samo krivulja učenja se malo hitreje vzpenja. So pa lahko toliko bolj zahrbtne.
In ne, C-jevske funkcije niso nič bolj fajn, samo krivulja učenja se malo hitreje vzpenja. So pa lahko toliko bolj zahrbtne.
Zgodovina sprememb…
- spremenil: Gundolf ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | programiranje krožek(pomoč)Oddelek: Pomoč in nasveti | 2754 (1742) | Marat |
» | kje zaceti z c++ ?Oddelek: Programiranje | 3856 (2164) | Monster |
» | [C#] cin like ukazOddelek: Programiranje | 1132 (1011) | Keki |
» | [c++] Kako ugotoviti katera tipka je bila pritisnjenaOddelek: Programiranje | 1480 (1252) | 64202 |
» | c++ datotekeOddelek: Programiranje | 4039 (3528) | Vesoljc |