English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمي أساسي بلغة C

تحكم في العملية بلغة C

وظائف لغة C

المجموعات في لغة C

المراجع في لغة C

السلاسل في لغة C

مجموعات بيانات لغة C

ملفات لغة C

C أخرى

دليل مرجع لغة C

طريقة استخدام وظيفة fprintf() في مكتبة C ومثال

مكتبة القياس - <stdio.h> في C

وظيفة مكتبة C int fprintf(FILE *stream, const char *format, ...) إرسال输出来 إلى تدفق النص stream.

بيان

هذا هو بيان تعريف وظيفة fprintf().

int fprintf(FILE *stream, const char *format, ...)

المعاملات

  • stream -- هذا هو إشارة إلى كائن FILE، الذي يحدد التيار.
  • format -- هذا هو سلسلة C، يحتوي على النص الذي سيتم كتابته في تيار stream. يمكن أن يحتوي على علامات format مدمجة، يمكن أن يتم استبدال هذه العلامات بالقيم المحددة في المعاملات الإضافية وفقًا للتحديدات وتنسيقها. %[flags][width][.diameter][length]specifier،وسيتم شرح ذلك بالتفصيل كما يلي:
specifier (الوصف)إخراج
cحرف
d أو iعدد عشري سالب
eاستخدام إشارة e للعديد العلمي (الرقم والعلامة)
Eاستخدام إشارة E للعديد العلمي (الرقم والعلامة)
fعدد عشري
gاختيار التمثيل المناسب بين %e أو %f.
Gاختيار التمثيل المناسب بين %E أو %f.
oعشري سالب
sخط النص للحرف
uعدد عشري غير سالب
xعدد عشري غير سالب
Xعدد عشري غير سالب (بالأحرف الكبيرة)
pعنوان الإشارة
nلا يتم إخراج أي شيء
%حرف

flags (العلامات)الوصف
-تنسيق على يسار عرض الحقل المحدد، بالافتراض هو التنسيق على اليمين (انظر الشرح الفرعي لـ width).
+إجبار عرض إشارة إضافية أو ناقصية (+ أو -) قبل النتيجة، أي سيتم عرض إشارة + أمام الأرقام الإيجابية. بالافتراض، سيتم عرض إشارة - أمام الأرقام السلبية فقط.
(مسافة)إذا لم يتم كتابة أي رمز، فسيتم إدراج مسافة أمام القيمة.
#عند استخدام o، x أو X، سيتم عرض 0، 0x أو 0X أمام القيم غير الصفرية.
عند استخدام e، E، f، سيتم إجبار إخراج نقطة عشرية، حتى لو لم يكن هناك أي أرقام بعد ذلك. بالافتراض، إذا لم يكن هناك أي أرقام بعد ذلك، لن يتم عرض النقطة العشرية.
عند استخدام g أو G، سيكون الناتج نفسه كما عند استخدام e أو E، ولكن لن يتم إزالة الأصفار في نهاية.
0ضع صفر (0) على يسار الرقم المحدد للملء padding، وليس الأبيضاء (انظر الشرح الفرعي لـ width).

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

.precision (وضوح)الوصف
.numberلوصفات الأعداد الصحيحة (d، i، o، u، x، X): يحدد الوضوح عدد الأرقام التي سيتم كتابتها من القيمة. إذا كان القيمة أقصر من هذا العدد، يتم تعبئة النتيجة بمقدار كافٍ من الأصفار. إذا كان القيمة أطول من هذا العدد، لن يتم قطع النتيجة. إذا كان الوضوح 0، لا يتم كتابة أي حرف.
لوصفات e و E و f: عدد الأرقام العشرية التي سيتم إخراجها بعد نقطة العشرية.
لوصفات g و G: عدد الأرقام الفعالة التي سيتم إخراجها.
لنوع s: عدد الأحرف التي سيتم إخراجها. بشكل افتراضي، سيتم إخراج جميع الأحرف حتى يتم الوصول إلى حرف النهاية المخصص.
لنوع c: لا يؤثر.
عند عدم تحديد أي وضوح، يتم افتراض القيمة الافتراضية 1. إذا لم يتم تحديدها مع قيمة صريحة، يتم افتراض القيمة 0.
.*الوضوح لم يتم تحديده في format، ولكن سيتم وضع قيمة إضافية كعدد صحيح قبل المعلمة التي سيتم تنسيقها.

الطول (الطول)الوصف
hتُفسر المعلمة على أنها نوع short أو unsigned short (يُستخدم فقط في وصفات الأعداد الصحيحة: i، d، o، u، x و X).
lتُفسر المعلمة على أنها نوع long أو unsigned long، ويُستخدم في وصفات الأعداد الصحيحة (i، d، o، u، x و X) ووصفة c (تمثل حرفًا عريضًا) ووصفة s (تمثل سلسلة من الأحرف العريضة).
Lتُفسر المعلمة على أنها نوع long double (يُستخدم فقط في وصفات الأعداد العشرية: e، E، f، g و G).
  • المعلمات الإضافية -- بناءً على format 字符串 المختلفة، قد تحتاج وظيفة format إلى سلسلة من المعلمات الإضافية، وكل معلمة تحتوي على قيمة يجب أن يتم إدخالها، وتستبدل كل % علامة في format.

القيمة المعدة

إذا كان النتائج ناجحًا، فإنه يعود عدد الحروف المكتوبة، وإلا يعود عدد سالب.

مثال على الإنترنت

هذا المثال يوضح استخدام fprintf().

#include <stdio.h>
#include <stdlib.h>
int main()
{
   FILE * fp;
   fp = fopen ("file.txt", "w+");
   fprintf(fp, "%s %s %s %d", "We", "are", "in", 2014);
   fclose(fp);
   return(0);
{}

دعونا نكتب و ننفيذ البرنامج المذكور أعلاه، سيؤدي ذلك إلى إنشاء ملف file.txt، و محتوياته كالتالي:

نحن في عام 2014

الآن دعونا نستخدم البرنامج التالي لعرض محتويات الملف المذكور أعلاه:

#include <stdio.h>
int main ()
{
   FILE *fp;
   int c;
   fp = fopen("file.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
          break ;
      {}
      printf("%c", c);
   {}
   fclose(fp);
   return(0);
{}

مكتبة القياس - <stdio.h> في C