Mahalagang Pagkakaiba – scanf vs gets
Ang isang function ay isang set ng mga pahayag upang magsagawa ng isang partikular na gawain. Nang hindi isinusulat ang lahat ng mga pahayag sa parehong programa, maaari itong hatiin sa maraming mga function. Sa programming, maaaring tukuyin ng user ang kanyang sariling mga function. Mayroon ding mga function na ibinibigay ng mga programming language. Ang wikang C ay nagbibigay ng ilang mga function, kaya maaaring gamitin ng programmer ang mga ito nang direkta nang hindi ipinapatupad ang mga ito mula sa simula. Dalawang ganoong function na ibinigay ng C language ay scanf at gets. Tinatalakay ng artikulong ito ang pagkakaiba sa pagitan ng dalawang function na ito. Ang pangunahing pagkakaiba sa pagitan ng scanf at gets ay ang scanf ay nagtatapos sa pagkuha ng input kapag nakatagpo ng isang whitespace, newline o End Of File (EOF) samantalang ang gets ay isinasaalang-alang ang isang whitespace bilang bahagi ng input string at tinatapos ang input kapag nakatagpo ng newline o EOF.
Ano ang scanf?
Maaaring basahin ng scanf function ang input mula sa keyboard at iimbak ang mga ito ayon sa ibinigay na format specifier. Binabasa nito ang input hanggang makatagpo ng whitespace, newline o EOF. Ang syntax ay ang mga sumusunod.
scanf(“format string”, listahan ng address ng mga variable);
Sumangguni sa halimbawang ibinigay sa ibaba upang maunawaan ang scanf.
Figure 01: scanf na may isang input
Ayon sa program sa itaas, ang input na nakukuha mula sa keyboard ay isang integer, kaya ang format specifier ay %d. Kung nakakakuha ito ng value ng character, ang format specifier ay %c. Kung nakakakuha ng floating-point value, ang format specifier ay %f. Ang natanggap na halaga ng input ay dapat na naka-imbak sa variable ng numero. Samakatuwid, ang address ng variable na numero ay ipinapasa sa scanf function. Ngayon ang variable ng numero ay naglalaman ng halaga na ibinigay ng user mula sa keyboard. Sa wakas, maaari naming i-print ang variable ng numero upang suriin ang halaga.
Posible ring makatanggap ng higit sa isang halaga sa isang pagkakataon.
Figure 02: scanf na may maraming input
Ang mga natanggap na input ay iniimbak sa variable number1 at number2. Maaaring suriin ang mga halaga sa pamamagitan ng paggamit ng printf.
What is gets?
Ang gets function ay ginagamit upang makatanggap ng input mula sa keyboard hanggang makatagpo ng bagong linya o EOF. Itinuturing ang whitespace bilang bahagi ng input. Ang syntax para sa gets function ay ang mga sumusunod.
gets(“kung saan iimbak ang string”);
Kung may error sa pagtanggap ng string, magbabalik ng null value ang gets function.
Sumangguni sa halimbawa sa ibaba,
Figure 03: nakakakuha ng
Ang input ay natanggap ng gets function at iniimbak sa variable na salita1. Kung ginamit ng programmer ang scanf sa halip na kumuha at mag-input ng string gaya ng "hello world", babasahin ng scanf ang string bilang dalawang string dahil sa whitespace. Ngunit babasahin ito ng gets bilang isang string na "hello world".
Ano ang Pagkakatulad sa pagitan ng scanf at gets?
- Parehong mga function na ibinigay ng C programming language.
- Dapat may kasamang header file na stdio.h ang dalawa para magamit ang mga function na ito.
- Maaaring gamitin ang dalawa para makakuha ng input mula sa karaniwang input.
Ano ang Pagkakaiba ng scanf at gets?
scanf vs gets |
|
Ang scanf ay isang C function na magbasa ng input mula sa karaniwang input hanggang sa magkaroon ng whitespace, newline o EOF. | Ang gets ay isang C function na magbasa ng input mula sa karaniwang input hanggang sa makatagpo ng bagong linya o EOF. Itinuturing nitong bahagi ng input ang whitespace. |
Syntax | |
Kinukuha ng function na scanf ang string ng format at listahan ng mga address ng mga variable. hal. scanf(“%d”, &number); | Kinukuha ng gets function ang pangalan ng variable para iimbak ang natanggap na value. Hal. gets(name); |
Kakayahang umangkop | |
Maaaring basahin ng scanf ang maraming value ng iba't ibang uri ng data. | Ang gets() ay makakakuha lamang ng data ng string ng character. |
Buod – scanf vs gets
Ang scanf and gets ay mga function na ibinigay ng programming language C. Hindi kailangang ipatupad ng user ang mga function na ito mula sa simula. Maaari nilang direktang gamitin ang mga ito sa kanilang mga programa. Ang pagkakaiba sa pagitan ng scanf at gets ay, tinatapos ng scanf ang pagkuha ng input kapag nakatagpo ng whitespace, newline o End Of File (EOF) at isinasaalang-alang ang isang whitespace bilang bahagi ng input string at tinatapos ang input kapag nakatagpo ng newline o EOF. Ang paggamit ng scanf o gets ay depende sa paraan para makatanggap ng input ng user mula sa karaniwang input na kadalasang keyboard. Ang scanf ay mas flexible kaysa sa gets.
I-download ang PDF Version ng scanf vs gets
Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa mga offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito Pagkakaiba sa pagitan ng scanf at makakuha ng