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

alternativa funkciji scanf()

[es] :: C/C++ programiranje :: alternativa funkciji scanf()

[ Pregleda: 6047 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Aksic

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



Profil

icon alternativa funkciji scanf()25.06.2001. u 19:21 - pre 277 meseci
Imao sam problema sa funkcijom scanf() iz standradne biblioteke, pa me zanima da li postoji neka alternativa ovoj funkciji.
Znam za funkciju gets() pa onda kasnije eventualno pretvaranje u int ili float ...
pozdrav.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()25.06.2001. u 22:55 - pre 277 meseci
Ziv bio sto nekazes kakvih si problema imao.
 
Odgovor na temu

Milan Aksic

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



Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 00:36 - pre 277 meseci
Citat:
predator je napisao:
Ziv bio sto nekazes kakvih si problema imao.


Ziv bio reci(napisacu) cu ti. Ovo mi se pre desilo ali sam u medjuvremenu prevazisao problem na drugaciji nacin preko funkcije gets(), ali evo koda koji mi je pre pravio probleme, pa ces videti zasto pitam za alternativu funkciji scanf().

#include <stdio.h>
#include <stdlib.h>

int stepenovanje(int broj, int stepen);
//typedef enum proveravanje{ n, y }provera;

int main( void )
{
int broj, stepen, rezultat, Yes_No = 1;
//provera Yes_No = y;
char izbor;
while (Yes_No)
{
printf("nUnesi broj: ");
scanf("%d", &broj);
printf("nUnesi stepen: ");
scanf("%d", &stepen);

//scanf("%c", &izbor);
rezultat = stepenovanje(broj, stepen);
printf("nnRezultat je: %d", rezultat);
printf("nContinue (y/n): ");
scanf("%c", &izbor);
if (izbor == 'y')
continue;
else if (izbor == 'n')
Yes_No = 0;
else
printf("n(!) Neispravan izbor!");
break;
}
return (EXIT_SUCCESS);
}

int stepenovanje(int broj, int stepen)
{
if (stepen == 1)
return (broj);
else
return ((broj * stepenovanje(broj, stepen - 1)));
}

Ovaj program preskace ulaz podataka funkcijom
scanf("%c", &izbor);
osim ako ne ucinim vidljivim monetar kod u 19 liniji koji je isti
// scanf("%c", &izbor);
tada on ne preskace poziv funkcije scnaf() u 23 liniji iza stampanje poruke "Continue (y/n)". Znam da je verovatno greska do mene ali je ja ne vidim, i ne shvatam koje veze ima duplo postavljanje iste funkcije (scanf()) pri cemu se ova druga izvrsava ako postoji prva, dok prvu ignosrise. A ako ne postoji prva vec samo druga onda potpuno ignorise drugu, kao da nije napisan poziv funkcije??
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 12:30 - pre 277 meseci
Problem je sto u bufferu ostaje n .Naime i meni je bilo cudno sto ovo ne radi.Napravio sam prost opit da vidim sta se desava. ;o)
Stavio sam ovako:

Code:

printf("Continue ... ");
scanf("%c",&izbor);
printf("%xn",izbor);
scanf(%c",&izbor);
printf("%cn",izbor);


Prvo je odstampano :
a iliti n sto znaci da se u bufferu nalazi n i posle je radilo.Prvo sam pogledao man fflush() da probam da flushjume buffer i u man pored fflush nadjem drugu funkciju:
Code:

     int
     fpurge(FILE *stream)


koja sluzi :
The function fpurge() erases any input or output buffered in the given stream.

i onda sam dodao samo :

izmedju printf("Continu") i scanf("%c",&izbor);
Code:

fpurge(stdin);


i to je resilo problem.Pazi mozes da imas dosta ali bas dosta problema nekad sa tim pratecim n u bufferu secam se da su u C++ za 21 dan objasnili na 2-3 (valjda tako bese) strane kako se cuvati toga,sta je buffer i sl.
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 12:32 - pre 277 meseci
Mada mozes da stavis i samo:
Code:

scanf("\n%c",&izbor);


mada ne garantujem da ces bas uvek imati n u bufferu tako da fpurge() ce da odradi posao


[Ovu poruku je menjao predator dana 06-26-2001 u 11:34 AM GMT]
 
Odgovor na temu

Milan Aksic

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



Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 00:43 - pre 277 meseci
Da, znam kako da resim problem jer sam pre postovao to ne secam se tacno gde, i neki su mi ljudi odgovorili, da stavim ispred 'n' ili da ispraznim bafer, ali da se mozda nisi setio neke alternative funkciji scanf()?
Pozdrav.

[Ovu poruku je menjao passanger dana 06-27-2001 u 12:48 AM GMT]
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 11:50 - pre 277 meseci
Code:

fscanf();


radi slicno samo sto trebas da mu odredis FILE * sa kog ce da cita.
Mozda fgets() nije los izbor ? (ali naknadno moras da konvertujes u int/float ... )
 
Odgovor na temu

bashke

Član broj: 258
Poruke: 133
*.ptt.yu



Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 15:29 - pre 277 meseci
A sad jedno pitanje za vas dvojicu::::
Vidim da ste upuceni u programiranje sa c/c++ pa me interesuje gde ste to naucili??? Ja sam jedno vreme imao par knjiga iz kojih sam pokusavao da naucim prg. jezik ali su kjnige bile toliko nejasne da je to neverovatno!?!
Da li ste vi taj prg. jezik naucili iz knjiga ili sa nekakvih kurseva????
We Are The Best Fuck The Rest
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 19:29 - pre 277 meseci
Ja sam iz knjige "C++ za 21 dan"
 
Odgovor na temu

c00l_daem0n
Beograd

Član broj: 309
Poruke: 294
*.telekom.yu

Jabber: andrew@elitesecurity.org
ICQ: 53650656


Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 21:21 - pre 277 meseci
Citat:
predator je napisao:
Ja sam iz knjige "C++ za 21 dan"


mojne lazes pr*do :)))
knjiga nije losa, ali nije toliko obimna, jedino su dobro
opisani objekti i samo OO programiranje,
ali su zato nasi ukenjali sa prevodom i stamparskim greskama

Would you translate me on the other page in face = Da li biste me preveli na drugu stranu ulice
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.verat.net



+1 Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 23:11 - pre 277 meseci
Ozbiljno ja sam sa njom poceo a posle dolaze na red razni textovi o C,unix programiranju... jebiga sa necim moas da pocnes
 
Odgovor na temu

[es] :: C/C++ programiranje :: alternativa funkciji scanf()

[ Pregleda: 6047 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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