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

ne radi mi getline() funkcija

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

[ Pregleda: 1182 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LightBow
London

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



Profil

icon ne radi mi getline() funkcija07.01.2006. u 08:24
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 :)

07.01.2006. u 08:24 

X Files
Vladimir Stefanovic
Pozarevac

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

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 09:23
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]
FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
07.01.2006. u 09:23 

tupito
Vladan Milivojevic
Beograd

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



Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 10:04
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]
07.01.2006. u 10:04 

LightBow
London

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



Profil

icon Re: ne radi mi getline() funkcija07.01.2006. u 20:55
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?
07.01.2006. u 20:55 

Branimir Maksimovic
Branimir Maksimovic

Član broj: 64947
Poruke: 259
*.bvcom.net.



Profil

icon Re: ne radi mi getline() funkcija08.01.2006. u 12:52
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!
08.01.2006. u 12:52 

tupito
Vladan Milivojevic
Beograd

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



Profil

icon Re: ne radi mi getline() funkcija08.01.2006. u 12:59
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++;}

08.01.2006. u 12:59 

Dragi Tata

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

Sajt: www.novetehnologije.com


Profil

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

LightBow
London

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



Profil

icon Re: ne radi mi getline() funkcija09.01.2006. u 02:23
Problem resen s c_str(). Hvala svima na korisnim odgovorima
09.01.2006. u 02:23 

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

[ Pregleda: 1182 | Odgovora: 7 ]

Postavi temu Odgovori

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