الانتقال إلى المحتوى الرئيسي

كيفية مسح المخزن المؤقت لإدخال ج في ج: دليل كامل

المخزن المؤقت الإدخال هو واحد من أهم جوانب البرمجة ج. يتم استخدامه للتخزين المؤقت للبيانات التي أدخلها المستخدم قبل معالجتها بواسطة البرنامج. ومع ذلك ، قد يكون من الضروري في بعض الأحيان مسح المخزن المؤقت للإدخال لتجنب الأخطاء غير المتوقعة والتشغيل غير الصحيح للبرنامج.

يؤدي مسح المخزن المؤقت للإدخال إلى تجنب المشكلات المرتبطة بالأحرف المتبقية في المخزن المؤقت بعد تنفيذ عمليات إدخال البيانات. خلاف ذلك ، يمكن قراءة هذه الأحرف في التكرار التالي للحلقة أو تتسبب في تعطل البرنامج.

هناك عدة طرق لمسح المخزن المؤقت الإدخال في اللغة ج. واحدة من أسهل الطرق هي استخدام وظيفة ففلوش () ، الذي يمسح المخزن المؤقت الإخراج ، ولكن يمكن أيضا أن تطبق على المخزن المؤقت الإدخال. ومع ذلك ، بشكل عام ، فمن المستحسن استخدام وظائف متخصصة مثل سكانف() أو جيتشار() لمسح المخزن المؤقت الإدخال.

وظائف متخصصة مثل سكانف() و جيتشار() يمكن أن توفر تنظيف أكثر موثوقية وصحيحة من المخزن المؤقت المدخلات. يمكن استخدامها لقراءة الأحرف أو السلاسل الفردية من المخزن المؤقت للإدخال ، دون تخزين البيانات المستلمة في المتغيرات. يتيح لك ذلك مسح المخزن المؤقت تماما والتأكد من قراءة إدخال المستخدم بشكل صحيح في المستقبل.

سيغطي هذا الدليل عدة طرق لمسح المخزن المؤقت للإدخال في ج ، وسيوفر أيضا أمثلة على التعليمات البرمجية لتوضيح كل طريقة. سيساعدك هذا على تجنب الأخطاء الشائعة وضمان تشغيل أكثر موثوقية لبرنامجك.

  1. كيفية التخلص من المخزن المؤقت الإدخال في ج: 5 خطوات بسيطة
  2. باستخدام وظيفة ففلوش ()
  3. مسح المخزن المؤقت باستخدام وظيفة الترجيع ()
  4. التخلص من المخزن المؤقت باستخدام وظيفة فسيك()
  5. باستخدام وظيفة سيتبوف ()
  6. حذف المخزن المؤقت الإدخال باستخدام وظيفة سيتفبوف ()
  7. سؤال وجواب
  8. كيف يمكنني مسح المخزن المؤقت الإدخال في ج?
  9. لماذا يحتاج المخزن المؤقت للإدخال إلى مسح في ج?
  10. ما هي الوظيفة في ج يستخدم لمسح المخزن المؤقت الإدخال?

كيفية التخلص من المخزن المؤقت الإدخال في ج: 5 خطوات بسيطة

المخزن المؤقت للإدخال في ج هو تخزين مؤقت حيث يتم تخزين البيانات التي يدخلها المستخدم من لوحة المفاتيح أو أجهزة الإدخال الأخرى حتى يصبح البرنامج جاهزا لمعالجتها. في بعض الأحيان ، يمكن أن يتسبب المخزن المؤقت للإدخال في حدوث مشكلات ، خاصة إذا بقيت الأحرف غير المقروءة أو البيانات المنسقة بشكل غير صحيح.

للتخلص من المخزن المؤقت للإدخال في ج ، يمكنك استخدام الخطوات البسيطة التالية:

باستخدام هذه الخطوات البسيطة ، يمكنك التخلص من المخزن المؤقت للإدخال في ج والتأكد من أن برنامجك يعمل بشكل صحيح.

باستخدام وظيفة ففلوش ()

يتم استخدام وظيفة ففلوش () في اللغة ج لإعادة تعيين المخزن المؤقت الإخراج بشكل صريح. هذا يعني أنه سيتم إرسال جميع البيانات الموجودة في المخزن المؤقت للكتابة إلى دفق الإخراج.

عادة ، يتم مسح المخزن المؤقت تلقائيا عند استيفاء شروط معينة ، على سبيل المثال ، عندما يكون المخزن المؤقت ممتلئا تماما أو عندما يتم استدعاء وظيفة فكلوس() لإغلاق الملف. ومع ذلك ، في بعض الحالات ، قد يكون من الضروري مسح المخزن المؤقت للإخراج بشكل صريح قبل أن يكون ممتلئا تماما أو قبل إغلاق الملف.

لاستدعاء وظيفة ففلوش () ، يجب تمرير مؤشر إلى الملف الذي يحتوي على المخزن المؤقت ليتم مسحه. على سبيل المثال ، لإعادة تعيين المخزن المؤقت للإخراج القياسي ، يمكنك استخدام الكود التالي:

# تشمل

كثافة العمليات الرئيسية () {

برينتف ("البيانات قبل إعادة تعيين المخزن المؤقت

");

ففلوش(ستدوت);

برينتف ("البيانات بعد إعادة تعيين المخزن المؤقت

");

العودة 0;

}

في هذا المثال ، يتم إخراج السلسلة "البيانات قبل تدفق المخزن المؤقت" أولا باستخدام وظيفة برينتف (). ثم يتم استدعاء وظيفة ففلوش(ستدوت) ، الذي يغسل المخزن المؤقت الإخراج القياسية. بعد ذلك ، يتم عرض السطر "البيانات بعد إعادة تعيين المخزن المؤقت". دون استدعاء وظيفة ففلوش () ، قد يبقى السطر الثاني في المخزن المؤقت وليس الإخراج.

يمكن أيضا استخدام وظيفة ففلوش () لإعادة تعيين المخزن المؤقت عند العمل مع الملفات. على سبيل المثال:

# تشمل

كثافة العمليات الرئيسية () {

ملف * ملف = فوبين ("ملف.النص " ، "ث");

إذا (ملف == فارغ) {

برينتف ("خطأ في فتح الملف

");

عودة 1;

}

فبوت ("البيانات قبل إعادة تعيين المخزن المؤقت" ، ملف);

ففلوش (ملف);

فبوت ("البيانات بعد إعادة تعيين المخزن المؤقت" ، ملف);

فكلوس (ملف);

العودة 0;

}

في هذا المثال ، الملف " ملف.النص " للكتابة باستخدام وظيفة فوبين (). ثم ، باستخدام وظيفة فبوت () ، يتم كتابة سلسلة "البيانات قبل تدفق المخزن المؤقت" إلى الملف. بعد ذلك ، يتم استدعاء وظيفة ففلوش(ملف) ، الذي مسح المخزن المؤقت الملف بحيث يتم كتابة البيانات جسديا إلى القرص. ثم ، باستخدام وظيفة فبوت () ، يتم كتابة سلسلة "البيانات بعد إعادة تعيين المخزن المؤقت". في نهاية تنفيذ البرنامج ، يتم إغلاق الملف باستخدام وظيفة فكلوس ().

باستخدام وظيفة فلوش () يمكن أن تكون مفيدة عندما مطلوب إخراج البيانات الفورية ، أو عندما يجب أن تكتمل بعض العمليات قبل إغلاق الملف.

مسح المخزن المؤقت باستخدام وظيفة الترجيع ()

وظيفة الترجيع () هي إحدى طرق مسح المخزن المؤقت للإدخال في لغة البرمجة ج. يسمح لك بالعودة إلى بداية دفق الملف وإعادة تعيين جميع مواضع المؤشر الحالية.

هذه الوظيفة مفيدة للغاية عندما تحتاج إلى إعادة تعيين حالة المخزن المؤقت للإدخال قبل قراءة البيانات الجديدة أو بعد العمل مع البيانات السابقة.

استخدام وظيفة الترجيع () بسيط للغاية. بناء جملة الدالة هو كما يلي:

الترجيع باطل (ملف * تيار );

الوسيطة الأولى للوظيفة هي مؤشر إلى بنية الملف ، والتي تمثل دفق الملف المطلوب لإعادة التعيين. الوسيطة الثانية هي مؤشر إلى دفق الملف الفعلي.

عند استدعاء وظيفة الترجيع () ، يتم تعيين مؤشر الملف على بداية الملف ، ويتم إعادة تعيين جميع مواضع المؤشر الحالية. يتيح لك ذلك البدء في قراءة الملف من البداية أو الكتابة فوق البيانات الموجودة في الملف.

مثال على استخدام وظيفة الترجيع () لمسح المخزن المؤقت للإدخال يبدو كما يلي:

# تشمل

كثافة العمليات الرئيسية () {

ملف * ملف = فوبين ("مثال.النص " ، "ص");

إذا (ملف == فارغ) {

برينتف ("خطأ في فتح الملف

");

عودة 1;

}

// المؤشر إلى بداية الملف

الترجيع (ملف);

// قراءة البيانات من الملف

المخزن المؤقت شار [100];

فجيتس (العازلة ، سيزوف (العازلة) ، ملف);

برينتف ("٪ق

"،عازلة);

فكلوس (ملف);

العودة 0;

}

في هذا المثال ، يفتح الملف أولا " مثال.النص " في وضع القراءة. ثم يتم استدعاء وظيفة الترجيع(الملف) ، والتي تعيد تعيين مؤشر الملف إلى البداية. بعد ذلك ، يتم قراءة البيانات من الملف باستخدام وظيفة فجيتس() وعرضها على الشاشة.

من المهم ملاحظة أن استدعاء وظيفة الترجيع () اختياري عند العمل مع ملف. في معظم الحالات ، تتحكم وظائف الإدخال/الإخراج القياسية في لغة سي بشكل مستقل في موضع المؤشر وإعادة تعيينه تلقائيا إلى بداية الملف.

التخلص من المخزن المؤقت باستخدام وظيفة فسيك()

وظيفة فسيك() من مكتبة ج يسمح لك للتنقل من خلال الملف وتغيير موقف المؤشر الحالي إلى أي موقف آخر. يمكن استخدامه لمسح المخزن المؤقت للإدخال إذا كان يحتوي على معلومات غير مرغوب فيها.

استدعاء وظيفة فسيك () مع وسيطة سيك_سيت وقيمة إزاحة سلبية سوف تتحرك المؤشر إلى بداية الملف وبالتالي إعادة تعيين المخزن المؤقت.

هنا مثال رمز يدل على استخدام وظيفة فسيك () لمسح المخزن المؤقت:

# تشمل 

كثافة العمليات الرئيسية () {

ملف * ملف = فوبين ("مثال.النص " ، "ص");

إذا (ملف == فارغ) {

برينتف ("تعذر فتح الملف

");

عودة 1;

}

فسيك (ملف ، 0 ، سيك_سيت) ؛ / / تحريك المؤشر إلى بداية الملف

المخزن المؤقت شار [100];

فجيتس (العازلة ، سيزوف (العازلة) ، ملف) ؛ / / قراءة خط من

ملف برينتف ("قراءة السلسلة: ٪ س

"،عازلة);

فكلوس (ملف);

العودة 0;

}

في هذا المثال ، نفتح الملف " مثال.النص " لقراءة باستخدام وظيفة فوبين (). ثم ندعو فسيك () مع ملف الحجج ، 0 و سيك_سيت لتحريك المؤشر إلى بداية الملف. هذا يسمح لنا بالتخلص من أي معلومات غير مرغوب فيها في المخزن المؤقت.

بعد ذلك ، نستخدم وظيفة فجيتس() لقراءة سطر من الملف وطباعته على الشاشة باستخدام برينتف(). ثم نغلق الملف باستخدام وظيفة فكلوس ().

وهكذا ، وذلك باستخدام وظيفة فسيك () مع وسيطة سيك_سيت وقيمة إزاحة سلبية يسمح لنا للتخلص من المخزن المؤقت الإدخال والبدء من الصفر لمزيد من معالجة البيانات.

باستخدام وظيفة سيتبوف ()

وظيفة سيتبوف () هي وظيفة من لغة البرمجة ج التي تسمح لك لتكوين مخزن مؤقت لإدخال البيانات أو الإخراج. التخزين المؤقت هو عملية تسمح للبيانات بالتراكم في مخزن مؤقت قبل إرسالها أو قراءتها.

وظيفة سيتبوف () يأخذ وسيطتين: مؤشر إلى مجموعة من الأحرف (المخزن المؤقت) ومؤشر إلى دفق الإدخال أو الإخراج القياسي. إذا كان المخزن المؤقت فارغا ، فسيتم تعطيل التخزين المؤقت.

يمكن أن يكون استخدام وظيفة سيتبوف () مفيدا عندما تحتاج إلى تغيير حجم المخزن المؤقت أو تعطيل التخزين المؤقت للتحكم في تدفق إدخال/إخراج البيانات.

مثال على استخدام وظيفة سيتبوف () لإدخال البيانات:

# تشمل

كثافة العمليات الرئيسية () {

شار العازلة [بوفسز];

سيتبوف (ستدين ، العازلة);

برينتف ("أدخل اسما:");

فجيتس (العازلة ، سيزوف (العازلة) ، ستدين);

برينتف ("مرحبا ، ٪ ق

"،عازلة);

العودة 0;

}

في هذا المثال ، نستخدم وظيفة سيتبوف () لتكوين المخزن المؤقت لإدخال البيانات (ستدين). نحن تمرير مؤشر إلى مجموعة من الأحرف (المخزن المؤقت) ، والذي يستخدم كمخزن مؤقت. نتيجة لذلك ، سيتم تخزين جميع بيانات الإدخال في المخزن المؤقت حتى يتم استلام سطر جديد.

مثال على استخدام وظيفة سيتبوف () لإخراج البيانات:

# تشمل

كثافة العمليات الرئيسية () {

شار العازلة [بوفسز];

سيتبوف(ستدوت ، العازلة);

برينتف ("مرحبا بالعالم!

");

العودة 0;

}

في هذا المثال ، نستخدم وظيفة سيتبوف () لتكوين المخزن المؤقت لإخراج البيانات (ستدوت). نحن تمرير مؤشر إلى مجموعة من الأحرف (المخزن المؤقت) ، والذي يستخدم كمخزن مؤقت. ونتيجة لذلك ، سيتم تخزين جميع بيانات الإخراج في المخزن المؤقت حتى يتم مسحها أو حتى يتم استدعاء وظيفة ففلوش ().

باستخدام وظيفة سيتبوف () يسمح لك للسيطرة على التخزين المؤقت للبيانات وتحسين أداء البرنامج ، وخاصة عند العمل مع كميات كبيرة من البيانات.

حذف المخزن المؤقت الإدخال باستخدام وظيفة سيتفبوف ()

وظيفة سيتفبوف () في ج يسمح لك للسيطرة على التخزين المؤقت من تيارات الإدخال / الإخراج. يوفر القدرة على تغيير معلمات المخزن المؤقت وحتى تعطيل المخزن المؤقت تماما لتيار معين.

لحذف المخزن المؤقت الإدخال ، يمكنك استخدام وظيفة سيتفبوف () مع المعلمات نول و _يونبف. سيؤدي هذا إلى تعطيل التخزين المؤقت لهذا الدفق تماما.

بناء جملة وظيفة سيتفبوف () كما يلي:

  • إنت سيتفبوف (ملف * تيار، شار * العازلة ، وضع إنت ، حجم حجم)

أين:

  • الدفق هو مؤشر إلى الدفق الذي يتم تغيير التخزين المؤقت له;
  • المخزن المؤقت هو مؤشر إلى المخزن المؤقت للمستخدم الذي سيتم استخدامه للتيار. إذا تم تمرير قيمة فارغة ، فسيتم تخصيص المخزن المؤقت تلقائيا;
  • الوضع-وضع التخزين المؤقت. لتعطيل التخزين المؤقت ، استخدم قيمة _يونبف;
  • الحجم-حجم المخزن المؤقت بالبايت. إذا تم تمرير قيمة 0 أو فارغة ، فسيتم استخدام حجم المخزن المؤقت للنظام الافتراضي.

مثال على استخدام وظيفة سيتفبوف () لحذف المخزن المؤقت الإدخال:

# تشمل

كثافة العمليات الرئيسية () {

شار الفصل;

// فتح الملف للقراءة

ملف * ملف = فوبين ("الإدخال.النص " ، "ص");

إذا (ملف == فارغ) {

printf("Не удалось открыть файл

");

return 1;

}

// Удаляем буфер ввода

if (setvbuf(file, NULL, _IONBF, 0) != 0) {

printf("Не удалось удалить буфер ввода

");

return 1;

}

// Читаем символы из файла

while ((ch = fgetc(file)) != EOF) {

printf("%c", ch);

}

// Закрываем файл

fclose(file);

return 0;

}

في هذا المثال ، نفتح الملف للقراءة ، ثم باستخدام وظيفة سيتفبوف () حذف المخزن المؤقت الإدخال لهذا الملف ثم قراءة الأحرف من الملف دون استخدام المخزن المؤقت الإدخال.

باستخدام وظيفة سيتفبوف () يسمح لك للسيطرة الكاملة على التخزين المؤقت من تيارات الإدخال / الإخراج في ج ويمكن أن تكون مفيدة عند العمل مع أنواع معينة من البيانات أو في حالات محددة حيث أقصى قدر من الأداء والسيطرة على تيارات الإدخال/الإخراج مطلوبة.

سؤال وجواب

كيف يمكنني مسح المخزن المؤقت الإدخال في ج?

لمسح المخزن المؤقت الإدخال في ج ، يمكنك استخدام وظيفة ففلوش (). على سبيل المثال ، يمكنك استدعاء ففلوش(ستدين) لمسح المدخلات القياسية.

لماذا يحتاج المخزن المؤقت للإدخال إلى مسح في ج?

يجب مسح المخزن المؤقت للإدخال في ج لتجنب سلوك البرنامج غير المتوقع. إذا لم يتم مسح المخزن المؤقت للإدخال ، تظل الأحرف التي لم تتم قراءتها في المخزن المؤقت ويمكن استخدامها في عمليات القراءة اللاحقة.

التي تعمل في ج يستخدم لمسح المخزن المؤقت الإدخال?

يتم استخدام وظيفة فلوش() في ج لمسح المخزن المؤقت الإدخال. باستخدام ففلوش () ، يمكنك مسح المدخلات القياسية عن طريق استدعاء ففلوش (ستدين).