Naravno, krenimo s člankom:
myFgets je jedna od temeljnih funkcija u C-u za dobivanje unosa od korisnika. Dio je biblioteke stdio i ističe se kao sigurnija alternativa svojim drugim kolegama poput scanf-a, zbog svoje sposobnosti sprječavanja prekoračenja međuspremnika.
#include <stdio.h> #define SIZE 100 int main() { char str[SIZE]; printf("Enter a string: "); if(fgets(str, SIZE, stdin) != NULL) { printf("You entered: "); puts(str); } return 0; }
Nakon što smo započeli s kratkim uvodom o myFgets, gore navedeni C kod koristi funkciju myFgets za primanje unosa niza od korisnika.
Kako funkcionira myFgets?
Funkcija fgets-a je čitanje niza sa standardnog ulaza (stdin), obično tipkovnice. Funkcija fgets ne razlikuje se od drugih ulaznih funkcija u C-u u svojim zahtjevima za tri parametra: međuspremnik u koji se čita ulaz, maksimalna veličina međuspremnika i ulazni tok iz kojeg se čita. Konkretno, nakon čitanja niza, fgets dodaje null znak ('') na kraj.
Razumijevanje gornjeg koda
Gore definirana funkcija počinje deklariranjem niza znakova (char array) određene veličine (SIZE). Zatim od korisnika traži da unese niz. Nakon korisničkog unosa, uvjetna izjava provjerava je li funkcija fgets uspjela pročitati niz. Ako je uspio, nastavlja s ispisom istog niza natrag na zaslon pomoću funkcije puts.
U razumijevanju odnosa između fgetova, veličine međuspremnika i sprječavanja prekoračenja međuspremnika, važno je prepoznati da je broj znakova koje fgets čita jedan manji od navedene VELIČINE. Ovo je učinjeno kako bi se prilagodio nultom znaku na kraju unosa.
Relevantne biblioteke i funkcije
Što se tiče biblioteka, stdio.h je jedna od najosnovnijih biblioteka u C-u, koja se koristi za ulazno/izlazne operacije. Način korištenja je jednostavan kao uključivanje na početku C koda pomoću #include direktive.
Što se tiče funkcija koje se koriste u ovom kodu, fgets pripada ovoj biblioteci, zajedno s puts i printf. Dok fgets istražuje, puts se koristi za pisanje niza u stdout do ali ne uključujući null znak. Funkcija printf oblikuje niz podataka za izlaz, na temelju niza formata i argumenata.
Imajte na umu da za siguran i učinkovit pristup nizu unosa od strane korisnika, myFgets ima dokazane rezultate u području C programiranja, ograničavanjem veličine unosa i time sprječava potencijalna prekoračenja međuspremnika.