menu
shopping_cart
0
KOSÁR

11. lecke

Beolvasás

lightbulb_outlineAdatokat kérünk a felhasználótól

Adatokat kiírni és számolgatni velük már teljesen profin tudunk, azonban a felhasználóhoz, aki a programot használja még egy kukkot sem szóltunk. A változókba adatokat nem csak futás közben tehetünk, hanem megkéretjük a user-t, hogy gépelje be őket a billentyűzetén! Erre való a scanf parancs, ami nagyon hasonlít a printf parancsra.

#include<stdio.h>

int main(){

    int szam;

    printf("Adj meg egy szamot!\n");

    scanf("%d", &szam);

    printf("A megadott szam: %d", szam);

return 0;
}

scanf.c c 12 A megadott szam: 12

Itt a honlapon használd a "Bemenet" című mezőt, oda írjad a programnak mondani kívánt dolgokat. Ha a saját számítógépeden dolgozol, és nem itt a felbőben, akkor persze a program ablakába kell begépelned a számokat.

A scanf első paramétere az idézőjelek közötti formátumsztring. Itt használjuk az előző fejezetben megtanult hely-jelölőket, megadva egy beolvasási formátumot. Ezután vesszővel elválasztva fel kell sorolni azokat a változókat, amiket be szeretnénk olvasni. Fontos, hogy a változók elé rakjunk egy and & jelet, ami annyit jelent, hogy a memóriába szeretnénk pakolni őket. Hé, ez nagyon fontos, ne felejtsd el!

#include<stdio.h>

int main(){

    int szam, szam2;

    printf("Adj meg két számot szóközzel elválasztva!\n");

    scanf("%d %d", &szam, &szam2);

    printf("A megadott számok: %d és %d", szam, szam2);

return 0;
}

scanf2.c c 12 23 Adj meg két számot szóközzel elválasztva! A megadott számok: 12 és 23

Gyakorlás

Olvassunk be egy egész számot, egy valós számot, és egy karaktert egy sorból. A bemenő adatok csak vesszővel vannak elválasztva. Írjuk ki a konzolablakba a beolvasott számoknál 1-el kisebb számokat és a beolvasott karakter előtt lévő ASCII tábla beli karaktert!

#include<stdio.h>

int main(){

    int egesz;
    double valos;
    char karakter;

    scanf("%d,%lf,%c", &egesz, &valos, &karakter);

    printf("Most minden egyel kisebb lesz:\n");

    printf("%d,%lf,%c", egesz-1, valos-1, karakter-1);

return 0;
}

egyelkisebb.c c 12,1.5,b Most minden egyel kisebb lesz: 11,0.5,a

Jaj, azt tudtad, ha egy C programnak valós számokat akarsz megadni, mint például 3.1415 akkor tizedesPONTOT használj, mint ahogy én is tettem és ne tizedes vesszőt, amilyen például ez: 3,1415

Jelentkezz be a hozzászóláshoz.

LalyPapa
A fenti szkriptet egy az egyben beírtam és nekem nem működik. Jobb esetben csak az int egészet írta ki futtatáskor. A CodeBlocks nem működik. Aláhúzta írásközben a karaktereket, piros négyzetet rak az utasítás számához, elhalványul a futtató gomb. Mi lehet a baj? LaliPapa
BauerDenes
nemtudom, de ha megpróbál rákattintani a letöltés gombra, talán működik
Amigo
Nálam úgy működött a Gyakorlás, hogy a scanf("%d,%lf,%c" helyett scanf("%d %lf %c"-t írtam, veszzők nélkül.