scanf และข้อมูลเข้า
อ่านข้อมูลเข้าจากผู้ใช้
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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ตัวระบุรูปแบบของ printf
- scanf และข้อมูลเข้า
- ความกว้าง ความแม่นยำ และแฟล็ก
- ข้อผิดพลาด I/O ที่พบบ่อย