สมมติว่าคุณต้องการใช้อักขระ ตามด้วยสตริงและประโยค (สตริงที่มีช่องว่าง) โดยใช้ 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