Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

คุณหมายถึงอะไรโดยบัฟเฟอร์ในภาษา C?


พื้นที่จัดเก็บชั่วคราวเรียกว่าบัฟเฟอร์ อุปกรณ์อินพุตเอาต์พุต (I/O) ทั้งหมดมีบัฟเฟอร์ I/O

เมื่อเราพยายามส่งค่าที่มากกว่าจำนวนที่ต้องการเป็นอินพุต ค่าที่เหลือจะถูกพักไว้ในบัฟเฟอร์อินพุตโดยอัตโนมัติ ข้อมูลบัฟเฟอร์นี้จะไปยังฟังก์ชันอินพุตถัดไปโดยอัตโนมัติ หากมีอยู่

เราต้องเคลียร์บัฟเฟอร์ก่อนที่จะรับอินพุตถัดไป

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับบัฟเฟอร์ -

#include<stdio.h>
void main(){
   int a,b;
   printf("\n Enter a value: ");
   scanf("%d",&a);
   printf("\n Enter b value: ");
   scanf("%d",&b);
   printf("\n a+b=%d ",a+b);
   getch();
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Enter a value: 1
Enter b value: 2
a+b=3

อีกครั้ง เรียกใช้โปรแกรม คราวนี้เราลองใส่ค่า a ไม่ใช่ b

Enter a value: 1 2 3
Enter b value: a+b=3

แม้ว่าเราจะไม่ได้ป้อนค่า b แต่จะใช้ค่าที่เก็บไว้ก่อนหน้านี้ซึ่งมีอยู่ในบัฟเฟอร์แล้ว

ในการใช้งาน เมื่อเราต้องการลบข้อมูลบัฟเฟอร์อินพุตมาตรฐาน ให้ไปที่ฟังก์ชัน flushall() หรือ fflush()

  • flushall() − เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าใน stdio.h โดยใช้ flushall เราสามารถลบข้อมูลออกจากบัฟเฟอร์ I/O ได้

  • ฟลัช() − เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าในไฟล์ส่วนหัว "stdio.h" ซึ่งใช้เพื่อล้างหน่วยความจำบัฟเฟอร์อินพุตหรือเอาต์พุต

  • ล้าง(stdin) - ใช้เพื่อล้างหน่วยความจำบัฟเฟอร์อินพุต ขอแนะนำให้ใช้ก่อนเขียนคำสั่ง scanf

  • ล้าง(stdout) - ใช้สำหรับล้างหน่วยความจำบัฟเฟอร์เอาต์พุต ขอแนะนำให้ใช้ก่อนคำสั่ง printf