Nalutas: myFgets sa c

Sige, magsimula tayo sa artikulo:

Ang myFgets ay isa sa mga pangunahing function sa C para sa pagkuha ng input mula sa user. Ito ay bahagi ng stdio library at namumukod-tangi bilang isang mas ligtas na alternatibo sa iba pang mga katapat nito tulad ng scanf, dahil sa kakayahan nitong pigilan ang buffer overflow.

#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;
}

Pagkatapos magsimula sa isang maikling pagpapakilala tungkol sa myFgets, ang ibinigay na C code sa itaas ay gumagamit ng myFgets function para sa pagkuha ng string input mula sa user.

Paano gumagana ang myFgets?

Ang function ng fgets ay basahin ang string mula sa karaniwang input (stdin), kadalasan ang keyboard. Ang function ng fgets ay hindi katulad ng iba pang mga function ng input sa C sa kinakailangan nito para sa tatlong mga parameter: buffer upang basahin ang input sa, maximum na laki ng buffer, at ang input stream mula sa basahin. Sa partikular, pagkatapos basahin ang string, ang fgets ay nagdaragdag ng isang null character ('') hanggang sa dulo.

Pag-unawa sa code sa itaas

Ang function na tinukoy sa itaas ay nagsisimula sa pamamagitan ng pagdedeklara ng isang string (char array) ng isang partikular na laki (SIZE). Pagkatapos ay sinenyasan nito ang gumagamit na magpasok ng isang string. Sa pagpasok ng user, sinusuri ng conditional statement kung nabasa ng function ng fgets ang string. Kung magagawa nito, magpapatuloy itong i-print ang parehong string pabalik sa screen gamit ang function na puts.

Sa pag-unawa sa kaugnayan sa pagitan ng fgets, laki ng buffer at pagpigil sa pag-apaw ng buffer, mahalagang kilalanin na ang bilang ng mga character na binabasa ng fgets ay mas mababa ng isa kaysa sa tinukoy na SIZE. Ginagawa ito upang mapaunlakan ang null character sa dulo ng input.

Mga kaugnay na aklatan at function

Sa mga tuntunin ng mga aklatan, ang stdio.h ay isa sa mga pinakapangunahing aklatan sa C, na ginagamit para sa mga pagpapatakbo ng input/output. Ang paraan ng paggamit ay kasing simple ng pagsasama nito sa simula ng C code gamit ang #include na direktiba.

Tungkol sa mga function na ginagamit sa code na ito, ang fgets ay kabilang sa library na ito, kasama ang puts at printf. Habang ang fgets ay nagsasaliksik, ang puts ay ginagamit upang magsulat ng isang string upang mag-stdout hanggang sa ngunit hindi kasama ang null character. Ang function na printf ay bumubuo ng isang string ng data para sa output, batay sa format na string at mga argumento.

Pakitandaan na para sa isang ligtas at epektibong diskarte sa input string mula sa user, ang myFgets ay may napatunayang track record sa larangan ng C programming, sa pamamagitan ng pagbubuklod sa laki ng input, at sa gayon ay pinipigilan ang mga potensyal na buffer overflows.

Kaugnay na mga post:

Mag-iwan ng komento