Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

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

Registrovaný: 14.01.12
Prihlásený: 20.07.13
Príspevky: 46
Témy: 9
Príspevok NapísalOffline : 18.03.2012 13:30

zdravim, ucim sa c++, som este lamka a idem podla prirucky mistrvstvi v c++ , dosiel som po ulohu so strukturami v dynamickom poli, ktoreho pocet prvkov zadame interne pocas behu. Problem je s objektom cin, skusal som viac kombinacii a z knihy neviem nabrat poterbnu predstavivost pre vsetky funkcne principi cin. podobne ani na nete som nenatrafil na nieco co by mi to lepsie osvetlilo...ide oto ze po zadani znacky auta mi program preskakuje na uplny jeho koniec. prikaldam kod ktory som zo seba vypotil..ak by mi niekto vedel osvetlit principi cin v tomto pripade tak bomba..zakladne rozdiely medzi cin.get a cin.getline sa domnievam ze viem. Dakujem

Kód:
#include<iostream>
using namespace std;

struct cars
{
char mark[20];
int year;
};

int main()
{
   int n, i;
   cout<<"zadaj pocet aut, ktore chces ulozit do zoznamu >>";
   cin>>n;
    cars *info=new cars[n];

   for( i=0 ; i<n ; i++ )
   {
      cout<<"car # "<<i+1;
      cout<<"zadaj znacku auta >>";
      cin.getline(info[i].mark,20,'\n');
      cin.get();
      cout<<info[i].mark;
       cout<<"zadaj rok vyroby >>";
      cin>>info[i].year;
       cout<<'\n';
      
   }
   
return 0;

}


// pridané po 19 minútach od posledného príspevku

chyba este cast ktora potom vytlaci cely zoznam..ale to by nemal byt problem.snad (:


Offline

Skúsený užívateľ
Skúsený užívateľ
c++ cin.get/line

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 18.03.2012 13:54

Problem je v tom, ze getline() nechvava vo vstupnom buffri znak noveho riadku, ktory stlacis pre potvrdenie toho, co napises. A tento znak sa potom precita v dalsom cin. Nieco podobne sa riesilo tu -> http://www.pcforum.sk/nefungujuci-fgets-vt127550.html <- akurat to je v C-cku, ide ale o podobny problem.

Pouzi miesto funkcie getline() iba funkciu get(), kde si mozes vsimnut tuto vetu:
Citácia:
If the delimiting character is found, it is not extracted from the input sequence and remains as the next character to be extracted. Use getline if you want this character to be extracted (and discarded).


Dalej, ak pouzivas pretazeny operator >> , tu budes zrejme musiet volat cin.get() aby sa precital tento znak. Da sa to riesit aj pomocou manipulatorov, ale to je na zaciatok asi prilis vela. Ries to zatial takto, urcite bude v knizke dalej vysvetlene, ako tomu predist.

Kód:
#include<iostream>
using namespace std;

struct cars
{
char mark[20];
int year;
};

int main()
{
   int n, i;
   cout<<"zadaj pocet aut, ktore chces ulozit do zoznamu >>";
   cin >> n;           
   cin.get();            // * PRIDANE *
   cars *info=new cars[n];

   for( i=0 ; i<n ; i++ )
   {
      cout<<"car # "<<i+1;
      cout<<"zadaj znacku auta >>";
      cin.get(info[i].mark,20);            // * PRIDANE *

      cout<<info[i].mark;
      cout<<"zadaj rok vyroby >>";
      cin >> info[i].year;
      cin.get();            // * PRIDANE *
      cout<<'\n';

   }

    delete [] info;

return 0;

}


Offline

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

Registrovaný: 14.01.12
Prihlásený: 20.07.13
Príspevky: 46
Témy: 9
Príspevok Napísal autor témyOffline : 18.03.2012 19:49

tvoja rada funguje..ako obvykle. nepaci sa mi len to ze zatial tomu vobec nerozumiem
aj ked navstivil som cplusplus.com uz predtym a vedel som aj ze getline nechava v zasobniku znak newline pre potvrdenie stlacenim.no nic ale aj tak vdaka velky saman-nacelnik sediaci kód.


Offline

Skúsený užívateľ
Skúsený užívateľ
c++ cin.get/line

Registrovaný: 11.01.09
Prihlásený: 24.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 18.03.2012 20:43

Ak ti nie je jasne nieco konkretne, tak sem s tym, ak budem vediet, poradim, ak nie, poradi niekto iny. Ale ked to myslis vseobecne, ze zatial tomu nerozumies, v tom pripade nezufaj, dostanes sa do toho. Zaciatky su stale tazke, ale za kratku dobu sa do toho dostanes, chce to len svoj cas a vela skusania.







_________________
Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS.
Odpovedať na tému [ Príspevkov: 4 ] 


Podobné témy

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

v Assembler, C, C++, Pascal, Java

9

600

26.06.2009 12:59

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. cin+cout vs. scanf()+printf()

v Assembler, C, C++, Pascal, Java

2

830

14.07.2007 12:40

jizzy.w Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. Naburanie do WiFi siete - trestny cin?

v Bezpečnosť a firewally

12

5878

26.10.2010 21:55

ado21 Zobrazenie posledných príspevkov

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

v PHP, ASP

8

618

30.04.2011 22:17

emer Zobrazenie posledných príspevkov

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

v PHP, ASP

4

471

28.04.2010 15:00

jtomcik Zobrazenie posledných príspevkov

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

v PHP, ASP

6

605

13.12.2008 21:04

p360t Zobrazenie posledných príspevkov

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

v PHP, ASP

6

389

22.02.2016 13:54

stenley Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

2

368

11.10.2010 13:49

Mego Zobrazenie posledných príspevkov

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

v PHP, ASP

0

514

06.06.2010 18:20

Unlink Zobrazenie posledných príspevkov

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

v PHP, ASP

1

484

30.01.2009 22:08

stenley Zobrazenie posledných príspevkov

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

v PHP, ASP

3

339

27.07.2012 4:13

TheRay Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

4

846

01.12.2009 14:51

pilná lama glama Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [VYRIESENE] Php GET problem

v PHP, ASP

4

559

21.02.2009 20:12

Xardas Zobrazenie posledných príspevkov

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

v PHP, ASP

11

729

05.06.2008 15:23

Tominator Zobrazenie posledných príspevkov

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

v PHP, ASP

3

385

24.04.2010 0:13

djsulo Zobrazenie posledných príspevkov

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

v Operačné systémy Unix a Linux

5

643

18.02.2010 10:44

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra