المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الي خبراء االسي c


العملاق الفيلسوف
2011-11-11, 13:09
السلام عليكم

سؤال قي كيفية التعامل مع الملفات

اي عندما تعيط لملف وش تدير باش يرجع للسطر وبا ه ما يقراش الفراغ الي بين الكلمات

issam_dz
2011-11-11, 14:58
السلام عليكم

سؤال قي كيفية التعامل مع الملفات

اي عندما تعيط لملف وش تدير باش يرجع للسطر وبا ه ما يقراش الفراغ الي بين الكلمات
و عليكم السلام.
طبعا أنت قلت c و لم تقل c++ لأن c++ تتوفر على دوال متقدمة في التعامل مع الملفات .
لذلك سأحاول أن أضع لك مثالا و سأشرح كل تعليمة على حدى...........

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
int caractereActuel = 0;
fichier = fopen("test.txt", "a+");
if (fichier != NULL)
{
// On peut lire et écrire dans le fichier
caractereActuel = fgetc(fichier); // On initialise caractereActuel
// Boucle de lecture des caractères un à un
while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
{
if(caractereActuel != ' ') printf("%c", caractereActuel); // On affiche le caractère stocké dans caractereActuel
caractereActuel = fgetc(fichier); // On lit le caractère suivant
}

fclose(fichier);
}
else
{
// On affiche un message d'erreur si on veut
printf("Impossible d'ouvrir le fichier test.txt");
}
return 0;
}



بالنسبة للمعامل a+ وضعته لأنه في حالة عدم وجود الملف سيقوم بكتابته . أما ان كان الملف موجود يمكنك استخدام المعامل r للقراءة فقط و المعامل r+ للقراءة و الكتابة.
جرب الكود و ان وجدت مشاكل ضعها هنا مع ذكر المحرر الذي استخدمت.

__الهاوي__
2011-11-11, 17:12
جميل أخ عصام
إن شاء الله المزيد

__الهاوي__
2011-11-11, 17:14
جميل أخ عصام
إن شاء الله المزيد

العملاق الفيلسوف
2011-11-12, 13:00
بارك الله فيك

تمرين انتاعي متعلق بالمخططات كيفاه تبريزونتي مخطط اما باليست او الماتريس انا اخترت الماريس

الملف يكون فيه ثلاث معطيات

مثال :
5 -nbr des sommet
4
1 0 1 0 1
0 0 0 1 1
1 0 1 0 1
1 1 1 0 0


1 lكاين خط بيناتهم
0 ماكانش


انا نحوس نفيشيه بحث تكون الماتريس في ملف

ومن بعد نقوم بعمليات على الماتريس كحساب كل لين شحال فيها رقم 1
وكل كاولون شحال فيها واحد الى اخره

issam_dz
2011-11-13, 21:47
بارك الله فيك

تمرين انتاعي متعلق بالمخططات كيفاه تبريزونتي مخطط اما باليست او الماتريس انا اخترت الماريس

الملف يكون فيه ثلاث معطيات

مثال :
5 -nbr des sommet
4
1 0 1 0 1
0 0 0 1 1
1 0 1 0 1
1 1 1 0 0


1 lكاين خط بيناتهم
0 ماكانش


انا نحوس نفيشيه بحث تكون الماتريس في ملف

ومن بعد نقوم بعمليات على الماتريس كحساب كل لين شحال فيها رقم 1
وكل كاولون شحال فيها واحد الى اخره

نعم لكن على حسب فهمي أنت تريد القيام بتخزين graphe عن طريق مصفوفة داخل ملف ثم القراءة من الملف.
لكن لم أفهم نوع المصفوفة التي اخترت ان كانت sommet-sommet فإنها تكون مصفوفة مربعة و ان كانت مصفوفة sommet-arc هنا ليس شرط أن تكون مربعة .
لذلك أنا وضعت لك مثال للقراءة من الملف يحوي مصفوفة مربعة 4*4 و يقرأ عدد 1 داخل كل سطر و يضعها داخل مصفوفة أخرى ثم أستدعي دالة لطباعة عناصر المصفوفة النتيجة .
و هذا لتوضيح الفكرة و طريقة التعامل مع الملفات و يمكنك اتمام الباقي...............


#include <stdlib.h>

#include <stdio.h>
void afficher(int *);
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
int caractereActuel = 0,nbr_1=0;
int mat_l[4]={0,0,0,0},j=0;
fichier = fopen("test.txt", "a+");
if (fichier != NULL)
{
caractereActuel = fgetc(fichier);
while (caractereActuel != EOF)
{
while(caractereActuel != '\n')
{ if(caractereActuel == '1') nbr_1++;

caractereActuel = fgetc(fichier);

}
mat_l[j++]=nbr_1;
nbr_1=0;
caractereActuel = fgetc(fichier);
}

fclose(fichier);
afficher(mat_l);
}
else
{
printf("Impossible d'ouvrir le fichier test.txt");
}

return 0;
}
//fonction afficher
void afficher(int *t)
{
int i=0;
printf("\n");
for(i=0;i<4;i++) printf("%d \n",t[i]);
}

العملاق الفيلسوف
2011-11-14, 00:00
مشكووووووووووووووووووووووووووووووور بارك الله فيك