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

Pomoć!! gets ne radi u switch/case...

[es] :: C/C++ programiranje :: Pomoć!! gets ne radi u switch/case...

[ Pregleda: 2366 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Lexx

Član broj: 74094
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Pomoć!! gets ne radi u switch/case...12.11.2005. u 15:28 - pre 224 meseci
Imam seminarski rad iz informatike predati u školi ovaj tjedan. Pisao sam jedan prijateljici, no isti sam problem sa tim getsom riješio tako da sam jednostavno rekao da kada piše ime proizvoda (tribalo joj je samo dvije riječi maksimalno) stavi _ između riječi i onda sam sa primjer - scanf("%s", &naziv); skupljao podatak pa bi to ispalo recimo Cokolada_Milka. No ja imam filmsku enciklopediju i treba mi gets za učitavanje sinopsisa, a glupo bi izgledalo da između svake riječi bude _. E sada, dosjetio sam se da probam izbjeći direktan gets u switch/case-u tako da kada pozove slučaj za učitavanje ode u funkciju za učitavanje. No opet gets ne radi. Kada istu funkciju pozovem prije switch/case u glavnom programu sve radi.

Može li se niz znakova kojom drugom funkcijom učitavati osim gets, pa da taj nesretni gets izbjegnem?

E da, nisam rekao da program ne blokira ili nešto slično, već se ponaša kao da tog getsa nema. Treba li možda nešto dodatno deklarirati kada se gets koristi u switch/case ili što?

Hvala.

[Ovu poruku je menjao Lexx dana 12.11.2005. u 16:29 GMT+1]
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Pomoć!! gets ne radi u switch/case...12.11.2005. u 19:49 - pre 224 meseci
Pa moram ti reci da nisam puno shvatio o tvom problemu iz posta.
 
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: Pomoć!! gets ne radi u switch/case...12.11.2005. u 21:23 - pre 224 meseci
Kada kazes da nesto ne radi - to nista ne govori o problemu niti ga potvrdjuje.

Moras dati primer... Pokazi barem minimalan kod u kome gets() ne radi u switch/case.

Ja ipak mislim da u tvome kodu nesto nedostaje, a to je:

Code:

fflush( stdin );


generalno, problem kod ulaza kod konzolnih programa je u tome sto ENTER (RETURN)
koji si pritisnuo da prihvatis JEDAN upis, moze biti ulazni podatak za neki drugi
upis. fflush() je tzv. gutac RETURN-a i ponekad ga je potrebno staviti na pamentno
mesto.

Evo ti jedan blentav primer, pa probaj sa njime i bez njega (fflush-a).



Code:

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

int main(int argc, char* argv[])
{
   char text[1000];
   int x;

   printf( "upisi broj:" );
   scanf ( "%d", &x );

   fflush( stdin );

   switch ( x )
   {
      case 0:
         printf( "upisi tekst:" );
         gets( text );
         break;

      default:
         printf( "upisi tekst:" );
         gets( text );
         break;
   }

   printf( "%s\n", text );

   system( "PAUSE" );
   return 0;
}
 
Odgovor na temu

Lexx

Član broj: 74094
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoć!! gets ne radi u switch/case...12.11.2005. u 23:09 - pre 224 meseci
fflush je riješio problem, hvala... ;-)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Pomoć!! gets ne radi u switch/case...

[ Pregleda: 2366 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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