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

alternativa funkciji scanf()

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

[ Pregleda: 2216 | Odgovora: 10 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan Aksic

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



Profil

icon alternativa funkciji scanf()25.06.2001. u 19:21

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.
25.06.2001. u 19:21 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()25.06.2001. u 22:55
Ziv bio sto nekazes kakvih si problema imao.
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
25.06.2001. u 22:55 

Milan Aksic

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



Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 00:36
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??
26.06.2001. u 00:36 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 12:30
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.
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
26.06.2001. u 12:30 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()26.06.2001. u 12:32
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]
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
26.06.2001. u 12:32 

Milan Aksic

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



Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 00:43
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]
27.06.2001. u 00:43 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 11:50
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 ... )
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
27.06.2001. u 11:50 

bashke

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



Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 15:29
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
27.06.2001. u 15:29 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 19:29
Ja sam iz knjige "C++ za 21 dan"
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
27.06.2001. u 19:29 

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
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 uk****li sa prevodom i stamparskim greskama

Would you translate me on the other page in face = Da li biste me preveli na drugu stranu ulice
27.06.2001. u 21:21 

Vojislav Milunovic
tata i mama me izdržavaju
Beograd, Srbija

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

Sajt: nonenone.net


Profil

icon Re: alternativa funkciji scanf()27.06.2001. u 23:11
Ozbiljno ja sam sa njom poceo a posle dolaze na red razni textovi o C,unix programiranju... jebiga sa necim moas da pocnes
Oni ostali, ja se raspao...
četničke pesme
get out of ma way you bi***...
Ne čitam pp, ako nekom trebam ima mail : chetnik(na)atlas(tačka)cz
27.06.2001. u 23:11 

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

[ Pregleda: 2216 | Odgovora: 10 ]

Postavi temu Odgovori

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