Treba mi pomoc oko sitnice u C++u ! Znaci, pisao sam nekakav kod, i radi sve OK... Ali... Problem je sto kod prvog scanf ucita potrebnu vrijednost, ali takodje ucita i sve drugo sto se navede posle te prve vrijednosti... Pitanje je :
Kako da ogranicim scanf da cita samo prvi podatak unesen sa tastature a ne i sledece koji budu namjerno ili slucajno uneseni ?
npr unos : 1 2 3 4 ==> scanf treba da mi cita samo 1 a ostale da ne gleda uopste...
Problem je sto on ustvari cita tu jedinicu, ali cita i ostale brojeve a to mi ne treba... Konkretno, on te ostale brojeve cuva i automatski ih unosi za sledece scanf-ove...
Ako iko zna resenje, moj mail je dee_jay_draxx[at]hotmail[dot]com
Return bi trebao da resi problem. U svakom slucaju lepo je videti da se neko jos bavi i kreiranjem a ne samo konzumiranjem.
:: Treba mi pomoc oko sitnice u C++u :: Znaci, pisao sam nekakav kod, i radi sve OK.. :: Ali.. :: Problem je sto kod prvog scanf ucita potrebnu vrijednost, ali takodje ucita i sve drugo sto se navede posle te prve vrijednosti.. :: Pitanje je : :: :: Kako da ogranicim scanf da cita samo prvi podatak unesen sa tastature a ne i sledece koji budu namjerno ili slucajno uneseni :: :: npr unos : 1 2 3 4 ==> scanf treba da mi cita samo 1 a ostale da ne gleda uopste.. :: :: Problem je sto on ustvari cita tu jedinicu, ali cita i ostale brojeve a to mi ne treba.. :: Konkretno, on te ostale brojeve cuva i automatski ih unosi za sledece scanf-ove.. :: :: Ako iko zna resenje, moj mail je dee_jay_draxx[at]hotmail[dot]co :: :: printf(`Hvala unaprijed! `). :: :: SONY VAIO VGN-FW285J
pa scanf je metoda koja se moze parametrizovati i koja ima vise argumenata. Pogledaj detaljno kompletan interface (prototip, potpis) metode scanf. Dakle, iza zareza inputa mozes da formatiras ulazni tok kako ti odgovara. Npr parametar `%c`, char *
ili pak mozes da ulazni tok ubacis u buffer, listu ili niz i u malom telu procedure truncujes sve van 1 polja.
nisam se godinama zezao sa CPP-om, a i ne secam se da sam imao takvih problema...nebitno...u svakom slučaju, ako ne dodješ ni do kakvog drugog rešenja problema, uvek možeš sve što se unese da učitaš u jedan string, pa da iz tog stringa čupaš vrednost koja ti je potrebna, a ostatak već kako hoćeš...
char * ti je pokazivac na nisku karaktera i iostream toku (tastatura, neka memorija...)
A N G E L
:: pa scanf je metoda koja se moze parametrizovati i koja ima vise argumenata. Pogledaj detaljno kompletan interface (prototip, potpis) metode scanf. Dakle, iza zareza inputa mozes da formatiras ulazni tok kako ti odgovara. Npr parametar `%c`, char :: :: ili pak mozes da ulazni tok ubacis u buffer, listu ili niz i u malom telu procedure truncujes sve van 1 polja. :: :: Davno sam to radio pa me slabije sluzi secanj :: :: :: A N G E L :: :: ::
Jbga, nisam nista uspio, uglavnom kod radi, a sad sta bude bude... Pitacu sutra profesora sto nam drzi vjezbe da vidim sta ce mi on reci... Hvala svima...
Ne znam sad bas dal cu da ti pomognem (ako nije kasno)
ali mislim da postoji jedna fukcija koja sluzi da cita samo jedan karakter (koliko sam razumeo ti bi bas to hteo)
cinim mi se da je getchar(x) ili x=getchar() tako nesto... proveri u spisku funkcija prevodioca koji koristis... uvek postoji i primer za navedenu funkciju...
EDIT: Da ne pisem novi post bezze... Pokusao sam i ovo i takodje ne radi... Inace sam radio const=printf od necega i const=scanf od necega
ali mi nije davalo potrebne rezultate !
U svakom slucaju svima hvala na pomoci !
SONY VAIO VGN-FW285J
:: Ne znam sad bas dal cu da ti pomognem (ako nije kasno :: :: ali mislim da postoji jedna fukcija koja sluzi da cita samo jedan karakte :: (koliko sam razumeo ti bi bas to hteo :: :: cinim mi se da je getchar(x) ili x=getchar() tako nesto... proveri u spisku funkcij :: prevodioca koji koristis... uvek postoji i primer za navedenu funkciju.. :: :: mislim da ce ovo da ti zavrsi posao... :: :: :: :)))
Malo ljudi ustvari zna razliku izmedju C-a i C++-a.... to sto ti pisuckas nije C++.... Machine ti je rekao da mozas da napises razlicite formate. Pozdrav sa etf-a _________________________________________________ Hope is the first step on the road to disappointment.
Da, u pravu si , ovo nije C++ nego cisti C, ali ja sam pogresno napisao... Jbga... To sam napisao valjda zato sto radimo u Dev C++u...A inace pisem u C-u ali eto... Pogrijesio sam... Uglavnom , pricao sam sa profesorom pa mi je rekao da se taj problem rjesava pomocu dvije do-while petlje...
Pozdrav sa FIT-a ...
SONY VAIO VGN-FW285J
:: :: :: Malo ljudi ustvari zna razliku izmedju C-a i C++-a.... to sto ti pisuckas nije C++.... :: Machine ti je rekao da mozas da napises razlicite formate :: Pozdrav sa etf- :: ________________________________________________ :: Hope is the first step on the road to disappointment. :: ::
Ako hoces da korisnik odmah unese vise podataka (dakle recimo 1 5 3 4 4 2) imas dve opcije:
1. Da znas unapred koliko ce on toga uneti pa da ides for petljom.
2. Da uneses `break` karakter pa da ucitavas kao char, proveravas dal je to taj break char, ako jeste da radi break (ciklus sa izlaskom na sredini), ako nije radi dalje....
pricao sam sa profesorom koji nam drzi predavanja, rekao je da se taj problem (cuvanje svih vrijednosti koje se unesu prije scanf-a) rjesava pomocu dvije do while petlje... Objasnice mi drugi put...
Ne znam tacno na sta si mislio pod ovim `da cuva promenljive pre scanf-a`, ali pazi kad radis unos pomocu do while ciklusa jer on ce izvrsiti jednu iteraciju sigurno, a ako se unese nedozvoljen podatak odmah u startu - moze da dodje do greske.
Broj postavljenih tema: 60366. Broj poslatih odgovora: 647106. Trenutno niste prijavljeni na PC Berzu i zbog toga imate status 'gosta'. Kao gost ne možete da šaljete poruke na Forum. Ako ste registrovani kao član PC Berze, prijavite se. Ako ste novi korisnik, molimo registrujte se da bi dobili mogućnost aktivnog učešća u radu Foruma.