สมมติว่าคุณต้องการใช้อักขระ ตามด้วยสตริงและประโยค (สตริงที่มีช่องว่าง) โดยใช้ C ดังนั้นเราจะจัดเตรียมอินพุตสามตัวและพิมพ์เหมือนกับเอาต์พุต ขนาดสูงสุดของสตริงคือ 500 ที่นี่
ดังนั้นหากอินพุตเป็นแบบ
character = 'T' string = "ProgrammingLanguage" sentence = "I love programming through C",
แล้วผลลัพธ์ที่ได้จะเป็น
Your character: T Your string: ProgrammingLanguage Your sentence: I love programming through C
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
สำหรับอักขระ เราต้องใช้ scanf("%c", &character);
-
สำหรับสตริง เราต้องใช้ scanf("%s", string);
-
ขั้นตอนนี้เป็นทางเลือก แต่จำเป็นในบางกรณี บางครั้งคุณอาจประสบปัญหาหนึ่ง บางครั้งโปรแกรมของคุณไม่รออินพุตถัดไป เราจึงต้องล้างบัฟเฟอร์โดยใช้ fflush(stdin)
-
และสำหรับสตริงที่มีช่องว่าง เราจำเป็นต้องใช้ฟังก์ชัน fgets() พารามิเตอร์แรกในที่นี้คือสตริง พารามิเตอร์ที่สองคือขนาด และพารามิเตอร์สุดท้ายคือ stdin เพื่อรับข้อมูลจากคอนโซล
-
ตัวสุดท้ายระบุว่าเราต้องการอักขระขึ้นบรรทัดใหม่หนึ่งตัวเพื่อระบุจุดสิ้นสุดของสตริง มิเช่นนั้นก็จะต้องใช้พื้นที่เช่นกัน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <stdio.h> int main(){ char character; char string[500]; char sentence[500]; scanf("%c", &character); scanf("%s", string); fflush(stdin); fgets(sentence, 500, stdin); printf("Your character: %c\n", character); printf("Your string: %s\n", string); printf("Your sentence: %s\n", sentence); }
อินพุต
T ProgrammingLanguage I love programming through C
ผลลัพธ์
Your character: T Your string: ProgrammingLanguage Your sentence: I love programming through C