الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل شكل ملف في ِC

بدأه milou في 31 مارس 2014 · 3 رد · 608 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

لدي ملف من الشكل التالي(langage C)

 

 

  .....classe car1 cara2 cara3

..... classe car1 cara2 cara3

..... classe car1 cara2 cara3

..... classe car1 cara2 cara3

......classe car1 cara2 cara3

 

اريد تحويله  في ملف اخر لكن الى الشكل 

 

... classe  1:car1  2:cara2  3:cara3 

... classe  1:car1  2:cara2  3:cara3 

... classe  1:car1  2:cara2  3:cara3 

... classe  1:car1  2:cara2  3:cara3 

 

#2

ما تطلبينه لا يحتاج سوى قراءة من ملف ثم طباعة في ملف آخر !

ابحثي عن fscanf و fprintf

وطلبات الحلول الجاهزة ممنوعة ..

#3
{

char ANCIEN[] = "fil1.TXT";
char NOUVEAU[] = "fil2.TXT";
FILE *INFILE, *OUTFILE;

int  car1,car2,car3,car4,car5,car6;

INFILE = fopen(ANCIEN, "r");
OUTFILE = fopen(NOUVEAU, "w");

while (!feof(INFILE))
{
fscanf (INFILE,"%d %d %d %d %d %d\n ",&car1,&car2,&car3,&car4,&car5,&car6);
fprintf(OUTFILE,"%d 1:%d 2:%d 3:%d 4:%d 5:%d\n",car1,car2,car3,car4,car5,car6);
}
fclose(OUTFILE);
fclose(INFILE);
}

لا انا قمت بعمل كود صغيرة لكنه يعمل فقط في حالة كانت عدد الاعداد في كل سطر من الملف معلومة مثلا 6 اعداد 

لكن الملف في الحقيقة لا اعلم كم عدد فيه يعني ربما 6 ربما 10 او .....

 

هذه هي المشكلة

#4

إذاً عليك القيام بما يلي :

1- قراءة سطر كامل ووضعه في مصفوفة ما لنسمها Line .

2- عمل حلقة while وشرط انتهائها هو الوصول إلى نهاية المصفوفة Line

3- في دورة للحلقة ثم بعمل sscanf وهي دالة تقوم بالقراءة من المصفوفة Line ( كما تقرأ في scanf العادية )

وهذا من أجل جميع الأسطر .

(انتبه عند استعمال sscanf فعليك متابعة موضع المؤشر بعد كل عملية قراءة )

--------------

هناك طريقة أخرى :

بعد قراءة كل كلمة باستخدام scanf

استخدم getchar , فإن كانت القيمة المعادة هي الفراغ ' '  فتابع القراءة , أما إن كانت نهاية السطر 'n\' فاخرج من الحلقة

 

أرجو أن تكون احدى الفكرتين وصلت

بالتوفيق

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…