Hei!
Mitä eroa on näillä koodeilla? Kumpaa kannattaa käyttää? (Huom! Tauk = vakio, jonka arvo on vaikka 20)
char teksti[Tauk];
cin.getline(teksti,Tauk);
== ja ==
char teksti[Tauk];
cin.get(teksti,Tauk).get;
???????
Mitä eroa on näillä koodeilla? Kumpaa kannattaa käyttää? (Huom! Tauk = vakio, jonka arvo on vaikka 20)
char teksti[Tauk];
cin.getline(teksti,Tauk);
== ja ==
char teksti[Tauk];
cin.get(teksti,Tauk).get;
???????
Vastaukset 1
Vanhimmat
1)
char teksti[Tauk];
cin.getline(teksti,Tauk);
Lukee maksimimäärän merkkejä ellei sitä ennen ole rivinvaihtomerkkiä.
Merkkejä mahtuu taulukkoon siis tauk-1 kpl,sillä tilaa jätetään rivinvaihtomerkille.
Myös välilyönnit luetaan.
2)
char teksti[Tauk];
cin.get(teksti,Tauk).get();
Viimeinen get()-funktio poimii myös rivinvaihtomerkin taulukkoon,joten
toimii samoin,kuin kohdan 1)lauseke.
Jos ei olisi.get()-funktiota lopussa,niin toinen peräkkäinen cin.get-kutsu
tulostaisi vain itsensä ja tulostaisi ensimmisen kutsun jonoon jättämän
rivinvaihtomerkin ensimmäisen syötteen sijasta,jolloin vain toinen syöte
tulostuisi.
Kyllä minä käyttäisin pääasiassa kohdan 1) menettelyä.Käyttäminen mää-
räytyy tietenkin tarpeiden mukaisesti.