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

scanf me zeza

[es] :: C/C++ programiranje :: scanf me zeza

[ Pregleda: 3934 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

0x00

Član broj: 3232
Poruke: 6
*.bankerinter.net



Profil

icon scanf me zeza27.04.2002. u 21:09 - pre 244 meseci
scanf("%s", string); me zeza.
Hocu da unesem celu recenicu, a on pamti samo prvu rec :(
Zasto?
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: scanf me zeza27.04.2002. u 21:35 - pre 244 meseci
Isto kao sto cin npr. ne uzima celu recenicu, odnosno uzima 'rec' do prvog blanko znaka i onda 'misli' da je to kraj, samo zbog toga da bi se omogucilo:
Code:

cin >> Rec >> Rec1 >> Rec2;
cin >> Broj >> Broj1 >> Broj2;

(ovde cin vraca &istrim da bi se ovo omogucilo, ali to je vec druga prica koja nema veze sa ovom) iz istog razloga ne radi i scanf() (normalno ovde nema price o istream referenci ;o)
da bi se omogucilo:
Code:

scanf("%s%s%s", Rec, Rec1, Rec2);
scanf("%d%d%d", Broj, Broj1, Broj2);


Znaci prostije receno, i cin (iako za cin nisi pitao nek' ti se nadje ;o) i scanf za blanko karakter smatraju kraj unosa.
Za cin koristi cin.getline() ili cin.get() a umesto scanf() koristi gets().
Za gets() #include <stdlib.h>

Nadam se da ce ti ovo pomoci ;o)
Pozdrav.
 
Odgovor na temu

dpanic
Darko Pavlovic

Član broj: 676
Poruke: 759
*.verat.net



Profil

icon Re: scanf me zeza27.04.2002. u 21:42 - pre 244 meseci
funkcija scanf je veoma specificna funkcija prilikom cije upotrebe treba obratiti paznju na podatke koji se unose, sto znaci da si ti taj koji uvek mora znati koji ce podatak biti unet, odnosno doci ce do buffer, string ili nekog drugog overflowa. u narodu receno greske :))
znaci, probaj sa gets, iako je ona nesigurna, probaj i sa scanf("%s", &string);
 
Odgovor na temu

dpanic
Darko Pavlovic

Član broj: 676
Poruke: 759
*.verat.net



Profil

icon Re: scanf me zeza27.04.2002. u 21:45 - pre 244 meseci
po meni je mnogo pametnije da vrtis kroz petlju getc + putc(putchar), ili fgetc + fputc.
znaci sve dok ne naleti na \0 ili \n

[Ovu poruku je menjao dARKmIND dana 28.04.2002 u 06:33 PM GMT]
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.041net.co.yu

Sajt: www.mycity.rs


+1 Profil

icon Re: scanf me zeza27.04.2002. u 21:49 - pre 244 meseci
Ma gets(string); neka opali...
 
Odgovor na temu

[es] :: C/C++ programiranje :: scanf me zeza

[ Pregleda: 3934 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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