[ 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 | 9
NapísalOffline : 18.03.2012 13:30 | c++ cin.get/line

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ý: 23.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 18.03.2012 13:54 | c++ cin.get/line

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 | 9
Napísal autor témyOffline : 18.03.2012 19:49 | c++ cin.get/line

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ý: 23.01.25
Príspevky: 1395
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 18.03.2012 20:43 | c++ cin.get/line

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.
 [ Príspevkov: 4 ] 


c++ cin.get/line



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

633

26.06.2009 12:59

Fico

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

cin+cout vs. scanf()+printf()

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

2

872

14.07.2007 12:40

jizzy.w

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

5943

26.10.2010 21:55

ado21

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

GET premenne

v PHP, ASP

8

668

30.04.2011 22:17

emer

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

GET a ID

v PHP, ASP

6

643

13.12.2008 21:04

p360t

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

Vista get conected

v Operačné systémy Microsoft

2

405

11.10.2010 13:49

Mego

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

class get/post

v PHP, ASP

0

564

06.06.2010 18:20

Unlink

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

GET method PHP

v PHP, ASP

6

426

22.02.2016 13:54

stenley

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

GET pise bludy

v PHP, ASP

4

502

28.04.2010 15:00

jtomcik

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

vytiahnutie premennej cez GET

v JavaScript, VBScript, Ajax

4

877

01.12.2009 14:51

pilná lama glama

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

[VYRIESENE] Php GET problem

v PHP, ASP

4

604

21.02.2009 20:12

Xardas

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

php, get a mysql

v PHP, ASP

3

375

27.07.2012 4:13

TheRay

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

problem s get page ...

v PHP, ASP

1

527

30.01.2009 22:08

stenley

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

[htaccess]cool url na get

v Ostatné

4

640

13.04.2010 1:04

Blackshadow

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

[VYRIESENE] spracovanie formulara cez GET

v PHP, ASP

15

929

20.02.2009 11:01

newboy1

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

GET aby to user nevidel

v PHP, ASP

11

774

05.06.2008 15:23

Tominator



© 2005 - 2025 PCforum, edited by JanoF