Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ne radi mi getline() funkcija

[es] :: C/C++ programiranje :: ne radi mi getline() funkcija

[ Pregleda: 4299 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon ne radi mi getline() funkcija07.01.2006. u 08:24 - pre 222 meseci
nije mi jasno u cemu je greska. Probao sam prvo:

string s;
while(getline(infile2, s)) {stock = atoi(s); i++;}

i kompajler (VS6) trazi treci argument. Medjutim kad dodam "" ili "\t" kao treci argument, onda ocekuje 2 argumenta.
Ako ne verujete, poslacu screenshot :)

 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 09:23 - pre 222 meseci
Nisam nikada u zivotu koristio getline, ali cini mi se na osnovu Helpa da si
promasio argumente:

http://crasseux.com/books/ctutorial/getline.html
http://www.delorie.com/gnu/docs/glibc/libc_185.html

P.S.

takodje objasni sta si hteo da postignes sa onom petljom, brojacem ...

[Ovu poruku je menjao X Files dana 07.01.2006. u 10:28 GMT+1]
 
Odgovor na temu

tupito
Vladan Milivojevic
Beograd

Član broj: 55195
Poruke: 54
*.041net.co.yu.



Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 10:04 - pre 222 meseci
treci argument ti je karakter ('\n')a ti stavljas "\n" to ti je string i tada uvek javlja da su ocekivana dva argumenta!

Code:

getline(cin,s, ' ');




Code:

getline(cin,s, '\n');



inace treba da radi i samo dva argumenta (barem to radi na VS.NET).
p.s. @xfiles ovde se valjda govori o funkciji iz C++, a ne c funkciji.



[Ovu poruku je menjao tupito dana 07.01.2006. u 14:42 GMT+1]
 
Odgovor na temu

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 20:55 - pre 222 meseci
Da, u pitanju je C++. U pravu si za treci argument, ispravljeno, ali imam jos veci problem sa atoi() funkcijom, tj. kombinacijom getline() i atoi(). Naime getline radi samo ako je drugi parametar string:
Code:
int stock[10];
string s;
while(getline(infile2, s, ' ')) {
     stock[j] = atoi(s);
      j++;}  
      infile2.close();


ali tada nece da kompajlira atoi(s). Kada stavim
Code:
char* s
while(getline(infile2, s, ' ')) {
      stock[j] = atoi(s);
      j++;}

onda ne radi getline(). Zakljucio sam da atoi() trazi char pointer kao parametar, a getline() string. Moj sledeci pokusaj:
Code:
string s;
char *c;
while(getline(infile2, s, ' ')) {
      c = s;
      stock[j] = atoi(c);
       j++;}

prouzrokuje gresku u c = s;
Zasto mogu da stavim npr. c ="bilo koji literal string", a ne mogu c = s iako je s string? Kako da resim ovaj problem?
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
c-bg-d-p3-47.bvcom.net.



+1064 Profil

icon Re: ne radi mi getline() funkcija08.01.2006. u 12:52 - pre 222 meseci
Citat:
LightBow: nije mi jasno u cemu je greska. Probao sam prvo:

string s;
while(getline(infile2, s)) {stock = atoi(s); i++;}

i kompajler (VS6) trazi treci argument. Medjutim kad dodam "" ili "\t" kao treci argument, onda ocekuje 2 argumenta.
Ako ne verujete, poslacu screenshot :)


stavi atoi(s.c_str()); zato sto atoi radi sa char* ostalo je ok kolko vidim.

Pozdrav!
 
Odgovor na temu

tupito
Vladan Milivojevic
Beograd

Član broj: 55195
Poruke: 54
*.041net.co.yu.



Profil

icon Re: ne radi mi getline() funkcija08.01.2006. u 12:59 - pre 222 meseci
U PAZZI string je template klasa iz STL-a to ti nije klasican char* string, on je ustvari array klasa i nama veze sa klasicnim c stringovima ako zelis da ga koristis sa klasicnim stringovima koristi s.c_str() metodu! Drugo ako zelis da kopiras vrednosti dva char* stringa NIKAKO c1 = c2 jer su c1 i c2 pointeri
vec strcpy(c1,c2) (ovo radi "c1=c2" po sadrzajima);

Code:

string s;
char *c;
/*c = s; ovo ni slucajno!*/
/*vec ovako: i sada ce c da ima vrednost koja je u s*/
strcpy(c,s.c_str());
char *c1;
strcpy(c1,c);
/*c1 = c; ovo takodje ni slucajno!*/

while(getline(infile2, s, ' ')) {
      stock[j] = atoi(s.c_str());
       j++;}

 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.dyn.optonline.net.



+6 Profil

icon Re: ne radi mi getline() funkcija08.01.2006. u 15:52 - pre 222 meseci
I da dodam - najbolje bi bilo da izbegavaš atoi. Pogledaj ovde neka bolja rešenja
 
Odgovor na temu

LightBow
London

Član broj: 4829
Poruke: 158
*.bulldogdsl.com.



+1 Profil

icon Re: ne radi mi getline() funkcija09.01.2006. u 02:23 - pre 222 meseci
Problem resen s c_str(). Hvala svima na korisnim odgovorima
 
Odgovor na temu

[es] :: C/C++ programiranje :: ne radi mi getline() funkcija

[ Pregleda: 4299 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.