Pagmaster sa Function na scanf sa C: Mga Format Specifier, Pagpapatunay ng Input, at Karaniwang mga Pagkakamali

1. Pangkalahatang-ideya ng Function na scanf

Sa pag-aaral ng wikang C, isa sa mga pinaka-ginagamit na paraan para magpasok ng datos sa isang programa ay ang function na scanf. Ito ay kumikilos tulad ng “tagapakinig” ng programa na nag-iimbak ng datos na inilagay ng gumagamit sa mga tinukoy na variable.

Pangunahing Sintaks ng scanf

scanf("formatSpecifier", &variable);

Dito, ang mga pangunahing elemento ay ang “formatSpecifier” at ang ampersand (&) bago ang variable. Ang format specifier ay tumutukoy sa uri ng datos na ipapasok, at ang & ay nagpapahiwatig ng address ng variable na iyon. Sa pagsunod sa patakarang ito, maayos na mapoproseso ng scanf ang input ng gumagamit.

int num;
scanf("%d", &num);

Sa ganitong paraan, nagbibigay ang scanf ng input sa programa at ginagawang magagamit ang datos.

2. Karaniwang Ginagamit na Format Specifiers

  • %d : para sa mga integer
  • %f : para sa mga float na uri ng floating-point na numero
  • %lf : para sa mga double na uri ng double-precision floating-point na numero
  • %s : para sa mga string (tinapos ng whitespace)
  • %c : para sa isang solong karakter
double val;
scanf("%lf", &val);
侍エンジニア塾

3. Pagproseso ng Maramihang Input nang Sabay-sabay

int age;
float height;
scanf("%d %f", &age, &height);
printf("Age: %d, Height: %.2fn", age, height);

4. Pagpapatunay ng Input at Paghawak ng Error

int age;
printf("Please enter your age (0–120): ");
if (scanf("%d", &age) == 1 && age >= 0 && age <= 120) {
    printf("The entered age is %d years.n", age);
} else {
    printf("Invalid age.n");
}

5. Paglilinis ng Input Stream

Kapag gumagamit ng scanf, maaaring maramdaman mong “nanatili ang nakaraang input”. Nangyayari ito dahil ang mga newline character (\n) at iba pa ay nananatili sa input stream.

scanf("%*[^n]");
scanf("%*c");

Pinapayagan ka nitong laktawan ang anumang newline o iba pang karakter na natitira sa input buffer. Gayunpaman, sa pagproseso ng mga loop, dapat mong iwasan ang hindi standard na fflush(stdin), at gumamit ng mga pamamaraan tulad ng nasa itaas para sa kaligtasan.

6. Karaniwang mga Pagkakamali at Pinakamainam na Kasanayan

  • Pagpapatugma ng format specifier: I-align ang uri ng data at ang specifier
  • Pag-iingat sa haba ng string: Kapag nag-iinput gamit ang %s, isaalang-alang ang laki ng buffer
  • Paglilinis ng stream: Iwasang iwan ang mga newline character

7. Advanced na Paggamit | Masalimuot na Teknik sa scanf

char name[20];
printf("Please enter your name: ");
scanf("%19s", name);  // buffer-safe measure
printf("Hello, %s!n", name);

Buod

Ang function na scanf ay isang pangunahing paraan ng pag-input sa C. Kapag naunawaan mo na ang mga format specifier, pag-check ng error, at paghawak ng input stream, magagamit mo ito nang ligtas. Bigyang-pansin ang mga natitirang input buffer at mga isyu sa buffer overflow.

年収訴求