C Academy · บทเรียน

scanf และข้อมูลเข้า

อ่านข้อมูลเข้าจากผู้ใช้

บทเรียน 2 จาก 413 ขั้นตอน

scanf และข้อมูลเข้า เป็นบทเรียน C Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

scanf ทำอะไร

scanf อ่านข้อมูลเข้าที่จัดรูปแบบแล้วซึ่งผู้ใช้ป้อน โดยใช้ตัวระบุรูปแบบเดียวกับ printf

#include <stdio.h>
int main(void) {
    int x = 0;
    /* scanf("%d", &x); */
    x = 5;
    printf("x = %d\n", x);
    return 0;
}

ตัวดำเนินการขอที่อยู่

scanf ต้องใช้ที่อยู่ของตัวแปรเพื่อจัดเก็บค่าไว้ที่ตำแหน่งนั้น นี่จึงเป็นเหตุผลที่ต้องเขียน &x

#include <stdio.h>
int main(void) {
    int x = 42;
    int *p = &x;
    printf("value via address = %d\n", *p);
    return 0;
}

การอ่านจำนวนเต็ม

หากต้องการอ่านจำนวนเต็ม ให้ส่ง %d และที่อยู่ของ int

#include <stdio.h>
int main(void) {
    int n;
    /* scanf("%d", &n); */
    n = 7;
    printf("You entered %d\n", n);
    return 0;
}

การอ่านค่าจุดลอยตัว

หากต้องการอ่านค่า float ให้ใช้ %f และหากต้องการอ่านค่า double ให้ใช้ %lf

#include <stdio.h>
int main(void) {
    double d;
    /* scanf("%lf", &d); */
    d = 3.14;
    printf("d = %.2f\n", d);
    return 0;
}

การอ่านหลายค่า

scanf หนึ่งคำสั่งสามารถอ่านค่าหลายค่าที่คั่นด้วยช่องว่างได้

#include <stdio.h>
int main(void) {
    int a, b;
    /* scanf("%d %d", &a, &b); */
    a = 3; b = 4;
    printf("sum = %d\n", a + b);
    return 0;
}

การอ่านอักขระ

ใช้ %c เพื่ออ่านอักขระหนึ่งตัว โปรดระวังว่าอักขระนี้อ่านทั้งช่องว่างและการขึ้นบรรทัดใหม่ด้วย

#include <stdio.h>
int main(void) {
    char c;
    /* scanf(" %c", &c); */
    c = 'X';
    printf("char = %c\n", c);
    return 0;
}

การอ่านคำหนึ่งคำ

%s อ่านคำที่คั่นด้วยช่องว่างลงในอาร์เรย์อักขระ ไม่ต้องใช้ & เพราะชื่ออาร์เรย์เป็นที่อยู่ไปแล้ว

#include <stdio.h>
int main(void) {
    char word[20];
    /* scanf("%s", word); */
    word[0] = 'H'; word[1] = 'i'; word[2] = 0;
    printf("word = %s\n", word);
    return 0;
}

ค่าที่ scanf ส่งคืน

scanf ส่งคืนจำนวนรายการที่อ่านได้สำเร็จ โปรดตรวจสอบค่านี้เพื่อจับข้อมูลเข้าที่ไม่ถูกต้อง

#include <stdio.h>
int main(void) {
    int n = 5;
    int read = 1; /* pretend scanf returned 1 */
    if (read == 1)
        printf("got %d\n", n);
    return 0;
}

การข้ามช่องว่างนำหน้า

ตัวระบุรูปแบบตัวเลขจะข้ามช่องว่างนำหน้าโดยอัตโนมัติ แต่ %c ไม่ทำเช่นนั้น การใส่ช่องว่างก่อน %c จะช่วยแก้ปัญหานี้

#include <stdio.h>
int main(void) {
    char c = 'Y';
    printf("Reading with \" %%c\" skips spaces\n");
    printf("c = %c\n", c);
    return 0;
}

การตรวจสอบข้อมูลนำเข้า

โปรดตรวจสอบค่าที่ส่งกลับทุกครั้งก่อนที่จะเชื่อถือข้อมูล

#include <stdio.h>
int main(void) {
    int value = 10;
    int ok = 1;
    if (ok)
        printf("valid: %d\n", value);
    else
        printf("invalid input\n");
    return 0;
}

การนำทุกอย่างมาประกอบกัน

โปรแกรมทั่วไปจะแจ้งขอข้อมูล อ่านข้อมูล แล้วจึงนำค่าที่ได้ไปใช้

#include <stdio.h>
int main(void) {
    int age;
    printf("Enter age: ");
    /* scanf("%d", &age); */
    age = 20;
    printf("Next year you will be %d\n", age + 1);
    return 0;
}

ตรวจสอบอย่างรวดเร็ว

ทดสอบความเข้าใจเกี่ยวกับ scanf

สรุป: scanf และข้อมูลนำเข้า

คุณได้เรียนรู้วิธีอ่านข้อมูลนำเข้าจากผู้ใช้แล้ว

  • scanf ใช้ตัวระบุรูปแบบแบบเดียวกับ printf
  • ส่ง &var เพื่อให้ฟังก์ชันทราบว่าจะจัดเก็บข้อมูลไว้ที่ใด
  • ใช้ %lf สำหรับ double และ %s สำหรับคำ
  • ตรวจสอบค่าที่ส่งกลับเพื่อยืนยันว่าข้อมูลนำเข้าถูกต้อง
  • ใส่ช่องว่างก่อน %c เพื่อข้ามช่องว่าง
เริ่มต้นได้ฟรี

เรียนรู้ C ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
39
บทเรียน
144

คำถามที่พบบ่อย

บทเรียน “scanf และข้อมูลเข้า” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “scanf และข้อมูลเข้า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “scanf และข้อมูลเข้า”

อ่านข้อมูลเข้าจากผู้ใช้ คุณปฏิบัติ C Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “scanf และข้อมูลเข้า” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C Academy นี้ได้ไหม

ได้ บทเรียน C Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตัวระบุรูปแบบของ printf
  2. scanf และข้อมูลเข้า
  3. ความกว้าง ความแม่นยำ และแฟล็ก
  4. ข้อผิดพลาด I/O ที่พบบ่อย
← กลับไปที่ C Academy