logo

C funkciji gets() in puts().

Gets() in puts() sta deklarirana v datoteki glave stdio.h. Obe funkciji sta vključeni v vhodno/izhodne operacije nizov.

Funkcija C gets().

Funkcija gets() omogoča uporabniku, da vnese nekaj znakov, ki jim sledi tipka enter. Vsi znaki, ki jih vnese uporabnik, se shranijo v niz znakov. Matriki je dodan ničelni znak, da postane niz. Gets() omogoča uporabniku vnos nizov, ločenih s presledki. Vrne niz, ki ga je vnesel uporabnik.

Izjava

 char[] gets(char[]); 

Branje niza z uporabo gets()

 #include void main () { char s[30]; printf('Enter the string? '); gets(s); printf('You entered %s',s); } 

Izhod

 Enter the string? javatpoint is the best You entered javatpoint is the best 

Uporaba funkcije gets() je tvegana, saj ne izvaja nobenega preverjanja vezave na polje in nadaljuje z branjem znakov, dokler ne naleti na novo vrstico (enter). Trpi zaradi prekoračitve medpomnilnika, čemur se je mogoče izogniti z uporabo funkcije fgets(). Funkcija fgets() poskrbi, da se ne prebere več kot največje dovoljeno število znakov. Razmislite o naslednjem primeru.

 #include void main() { char str[20]; printf('Enter the string? '); fgets(str, 20, stdin); printf('%s', str); } 

Izhod

 Enter the string? javatpoint is the best website javatpoint is the b 

Funkcija C puts().

Funkcija puts() je zelo podobna funkciji printf(). Funkcija puts() se uporablja za tiskanje niza na konzoli, ki je predhodno prebran s funkcijo gets() ali scanf(). Funkcija puts() vrne vrednost celega števila, ki predstavlja število znakov, ki se natisnejo na konzoli. Ker z nizom natisne dodaten znak za novo vrstico, ki premakne kazalec v novo vrstico na konzoli, bo vrednost celega števila, ki jo vrne puts(), vedno enaka številu znakov v nizu plus 1.

Izjava

 int puts(char[]) 

Oglejmo si primer branja niza z gets() in tiskanja na konzoli s puts().

 #include #include int main(){ char name[50]; printf('Enter your name: '); gets(name); //reads string from user printf('Your name is: '); puts(name); //displays string return 0; } 

Izhod:

 Enter your name: Sonoo Jaiswal Your name is: Sonoo Jaiswal