Pričekajte korisnički unos: C jezik

Wait User Input C Language

U programskom jeziku C postoje neke funkcije unosa. Pomoću ovih funkcija možemo čekati korisnički unos. U ovom ćemo vodiču detaljno razgovarati o ulaznim funkcijama.

Format String

Format string je format za unesene podatke. Ovaj format počinje znakom %, a zatim slijedi specifikator formata. Specifikator formata je određeni znak koji se koristi za koju vrstu podataka se čita.



arg1, arg2, arg3 ... adrese su varijabli u koje će se unositi podaci.



funkcija scanf ()

Sintaksa: int scanf (niz znakova, arg1, arg2, arg3 ...)



Neki od često korištenih specifikatora su sljedeći:

  • d - Koristi se za cjelobrojne vrijednosti.
  • f - Koristi se za plutajući broj.
  • c - Koristi se za vrijednost jednog znaka.
  • s - Koristi se za žice.

Korištenje single scanf () funkciju, od korisnika se može uzeti jedan ili više unosa.

The scanf () funkcija uzima ulaz sa standardnog unosa (tipkovnica) i pohranjuje vrijednost u varijablu. Funkcija čeka korisnički unos sve dok korisnik ne pritisne tipku enter. Unesena vrijednost pohranjuje se u međuspremnik. Kada pritisnete tipku enter, scanf () funkcija počinje čitati.



Primjer 1: Cijeli ulaz

// Primjer1.c
#uključi

intglavni(){

inti;
printf ('Unesite prvu cijelu vrijednost:');
scanf ('%d', &i);
printf ('Ušli ste: %d n',Ja);

printf ('Unesite 2. cijelu vrijednost:');
scanf ('%d', &i);
printf ('Ušli ste: %d n',Ja);

povratak 0;
}

U primjeru 1.c vidjeli smo da smo prilikom unosa cjelobrojnih vrijednosti pritisnuli tipku enter. The scanf () funkcija uzima vrijednost i sprema je u varijablu. Ako unesemo vrijednosti odvojene razmakom, funkcija se vraća kada se naiđe na razmak, ali vrijednosti nakon razmaka ostaju u ulaznom međuspremniku. Zato drugi scanf () funkcija neće čekati na unos korisnika, već uzima ulaz iz međuspremnika.

Primjer 2: Unos jednoznakovnog znaka

// Primjer2.c
#uključi

intglavni(){

charc;
printf ('Unesite znak:');
scanf ('% c', &c);
printf ('Ušli ste: %c n',c);

povratak 0;
}

U primjeru 2.c vidjeli smo da kada koristimo % c specifikator, scanf () funkcija uzima samo jedan znak čak i ako smo unijeli više od jednog znaka.

Primjer 3: Unos jednoznakovnog znaka (više puta)

// Primjer3.c
#uključi

intglavni(){

charc;
printf ('Unesite prvi znak:');
scanf ('% c', &c);
printf ('Ušli ste: %c n',c);

printf ('Unesite drugi znak:');
scanf ('% c', &c);
printf ('Ušli ste: %c n',c);

povratak 0;
}

Primjer 4 :

// Primjer4.c
#uključi

intglavni(){

charc;
printf ('Unesite prvi znak:');
scanf ('% c', &c);
printf ('Ušli ste: %c n',c);

printf ('Unesite drugi znak:');
scanf ('% c', &c);
printf ('Ušli ste: %c n',c);

povratak 0;
}

Primjer 5: Unos niza

// Primjer5.c
#uključi

intglavni(){

charIme[petnaest];
printf ('Unesite svoje ime: ');
scanf ('%s',Ime);
printf ('Ušli ste: %s n',Ime);

povratak 0;
}

getc () funkcija

Sintaksa: int getc (FILE *stream)

getc () funkcija se koristi za čitanje znaka iz pokazivača FILE (stream). Za čitanje s tipkovnice moramo koristiti stdin . Ova funkcija vraća cijelu vrijednost pročitanog znaka.

Primjer 6:

// Primjer6.c
#uključi

intglavni(){

charc;
printf ('Unesite prvi znak:');
dok((c= getc (stdin))==' n');
printf ('Ušli ste: %c n',c);

dok( getc (stdin)! =' n');

printf ('Unesite drugi znak:');
dok((c= getc (stdin))==' n');
printf ('Ušli ste: %c n',c);

povratak 0;
}

getchar () funkcija

Sintaksa: int getchar (void)

getchar () funkcija je ista kao getc () . Jedina razlika je u tome getc () funkcija može čitati iz bilo kojeg ulaznog toka, dok getchar () funkcija čita samo sa standardnog ulaza.

Primjer 7:

// Primjer7.c
#uključi

intglavni(){

charc;
printf ('Unesite prvi znak:');
dok((c= getchar ())==' n');
printf ('Ušli ste: %c n',c);

dok( getchar ()! =' n');

printf ('Unesite drugi znak:');
dok((c= getchar ())==' n');
printf ('Ušli ste: %c n',c);

povratak 0;
}

Zaključak

U ovom smo članku vidjeli kako se funkcije unosa koriste u jeziku C. Sve ove funkcije preuzimaju se iz ulaznog međuspremnika i kada te funkcije koristimo više puta, moramo očistiti međuspremnik. U suprotnom, funkcije neće čekati na unos korisnika i preuzimati ulaz iz međuspremnika.