Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 17.10.2011, 21:17   #1
optimus_prime
Starosedelac
 
Član od: 2.5.2006.
Lokacija: Austrija
Poruke: 1.444
Zahvalnice: 136
Zahvaljeno 75 puta na 59 poruka
Određen forumom scanf u C, nocna mora

Cao drugari imam jedan problem, posto nisam bas c programer, imam problem kako da ocitam 2 karaktera jedan za drugim, recimo:

printf("unesi slovo a :")
scanf("%c", &a);

printf("unesi slovo b :")
scanf("%c", &b);

e sad on ocita a, ali preskoci drugi scanf, kako napraviti da to ide jedno za drugim, tj da ocita varijablu za varijablom ?

hvala!
optimus_prime je offline   Odgovor sa citatom ove poruke
Stara 17.10.2011, 21:26   #2
boshkodj
Veteran
 
Član od: 4.7.2008.
Lokacija: Somewhere along the line
Poruke: 505
Zahvalnice: 85
Zahvaljeno 34 puta na 29 poruka
Određen forumom Re: scanf u C, nocna mora

Verovatno si pogrešio na drugom mestu u kodu, bilo bi dobro ako bi postavio ceo kod.
boshkodj je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku boshkodj na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 21:26   #3
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.082
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: scanf u C, nocna mora

Jel radi scanf("%c%c", &a, &b)?
Ako ne, uradi a = getchar(); b = getchar();

(nemam C kompajler na ovom računaru)

Borlandov C/C++ je imao odlične funkcije za te namene u okviru conio.h, getch i getche (jedna ne ispisuje znak na ekranu, druga ispisuje, e je od "echo"), hvatale su znak odmah bez potvrđivanja enterom i slično, jedino što su se oslanjale na DOS rutine pa nisu bile direktno portabilne a samim tim ni u okviru standarda...
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 21:38   #4
enaB
Član
 
Član od: 1.12.2005.
Lokacija: Batajnica
Poruke: 184
Zahvalnice: 9
Zahvaljeno 42 puta na 32 poruka
Određen forumom Re: scanf u C, nocna mora

Probaj ovako


Kod:
printf("unesi slovo a :");
scanf(" %c", &a);

printf("unesi slovo b :");
scanf(" %c", &b);
enaB je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku enaB na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 22:14   #5
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: scanf u C, nocna mora

Ovo ce ti sigurno raditi:
Kod:
scanf("%c %c", &a, &b);
A ako hoces na taj tvoj nacin, da dva puta koristis scanf funkciju onda ovako:
Kod:
printf("unesi slovo a :")
scanf("%c", &a);
getchar();

printf("unesi slovo b :")
scanf("%c", &b);
Ne znam tacno u cemu je problem, ali znam da u bufferu ostane memorisan karakter i ovaj drugi scanf to pokupi, zato pozoves getchar(), da u neku ruku ocisti buffer i ako mu to bas nije namjena, al resava problem. Mozda grijesim negdje, ali negdje sam cuo/procitao da je u tome problem...
clzola je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku clzola na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 22:26   #6
enaB
Član
 
Član od: 1.12.2005.
Lokacija: Batajnica
Poruke: 184
Zahvalnice: 9
Zahvaljeno 42 puta na 32 poruka
Određen forumom Re: scanf u C, nocna mora

Radiće i bez getchar() onako kako sam napisao, provereno na gcc
enaB je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku enaB na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 22:30   #7
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: scanf u C, nocna mora

opet zavisi od toga gde ga kompajlira....

Postoji razlika između gcca i recimo visual studia
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 22:32   #8
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: scanf u C, nocna mora

Inače ti treba prazan getchar() zbog entera Getchar prazni bafer... Odnosno zavisno od mašine, jer na win mašini se novi red odnosno enter gleda kao dva karaktera pa ti zato treba prazan getchar da prazni bafer.

Dok na Gcc-u ti gleda prelezak u novi red kao jedan karakter
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
optimus_prime (17.10.2011)
Stara 17.10.2011, 22:33   #9
optimus_prime
Starosedelac
 
Član od: 2.5.2006.
Lokacija: Austrija
Poruke: 1.444
Zahvalnice: 136
Zahvaljeno 75 puta na 59 poruka
Određen forumom Re: scanf u C, nocna mora

Citat:
enaB kaže: Pregled poruke
Probaj ovako


Kod:
printf("unesi slovo a :");
scanf(" %c", &a);

printf("unesi slovo b :");
scanf(" %c", &b);
Uradio sam tako, da u medjuvremenu sam nasao resenje, ali hvala vam svima.
optimus_prime je offline   Odgovor sa citatom ove poruke
Stara 17.10.2011, 23:27   #10
Ivan-94
Veteran
 
Član od: 15.3.2009.
Lokacija: Beograd
Poruke: 654
Zahvalnice: 240
Zahvaljeno 63 puta na 43 poruka
Slanje poruke preko MSN-a korisniku Ivan-94 Slanje poruke preko Skypea korisniku Ivan-94
Određen forumom Re: scanf u C, nocna mora

Ja sam to radio ovako:

printf("unesi broj a");
scanf("%d", &a);

fflush(stdin);

printf("unesi broj b");
scanf("%d", &b);

EDIT: Tek sad vidim da si nasao resenje.
Ivan-94 je offline   Odgovor sa citatom ove poruke
Stara 17.10.2011, 23:40   #11
optimus_prime
Starosedelac
 
Član od: 2.5.2006.
Lokacija: Austrija
Poruke: 1.444
Zahvalnice: 136
Zahvaljeno 75 puta na 59 poruka
Određen forumom Re: scanf u C, nocna mora

Citat:
Ivan-94 kaže: Pregled poruke
Ja sam to radio ovako:

printf("unesi broj a");
scanf("%d", &a);

fflush(stdin);

printf("unesi broj b");
scanf("%d", &b);

EDIT: Tek sad vidim da si nasao resenje.
jesam, ali kako broj a ? i treba da bude char a ne int
ja sam C++ i java programer, ali ovo sam nesto slucajno naleteo
Hvala vam svima.
optimus_prime je offline   Odgovor sa citatom ove poruke
Stara 21.10.2011, 14:38   #12
allokin
Veteran
 
Član od: 17.1.2008.
Lokacija: Београд
Poruke: 636
Zahvalnice: 481
Zahvaljeno 128 puta na 85 poruka
Određen forumom Re: scanf u C, nocna mora

Ово ради савршено.

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

int main(int argc, char **argv)
{
    char c1, c2;

    printf("Унеси први карактер: ");
    scanf("%c", &c1);
    printf("Унеси други карактер: ");
    scanf("\n%c", &c2); // Претпостављам да је потребно примити заостали carriage return од Enter дугмета
    printf("\nУнешена слова су: %c %c\n", c1, c2);

    getc(stdin);

    return EXIT_SUCCESS;
}
Ако хоћеш већу контролу над конзолом у C-у ncurses је прави избор.
allokin je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Kad neće, mora! :D - Najgluplja stvar koju možeš napraviti sa hardverom Sasa Cvet kompjutera 81 5.12.2009 19:34
AMD mora da udvostruči udeo na tržištu procesora da bi opstao Beagle Vesti 1 7.5.2008 19:27
Da li Pioneer DVR-112D mora da stoji sam na IDE grani Reloader Nosači podataka 15 10.1.2008 19:24
ADSL ali da ne mora svaki mesec... aLti Internet usluge 4 18.9.2007 14:54
Jel' mora bas reinstall? Pa razlicita su samo ploca i processor!!! ;oP U Jogurtu Nema Kostiju Operativni sistemi 9 17.2.2007 12:13


Sva vremena su po Griniču +2 h. Sada je 7:36.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com