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

هل ممكن ان اعرف ماهو خطائي في هذا الكود على الرغم من انه لا يظهر لي اي خطاء الا انه لا يخزن لي البيانات

مغلق
بدأه B5CSE في 21 مايو 2006 · 6 رد · 753 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
#include<stdio.h>
#include<conio.h>
struct book
{
   struct bkid
   {
	  int gno,bno,no;
   } b;
   char bname[20],author[15],pub[20];
   int price;

} B;
FILE *fb;
void addbook();
void main()
{
struct book_record B;

fb=fopen("book.dat","a");
printf("\n add book: ");
}
void addbook()
{
	 int num,i;
	 clrscr();
	 rewind(fb);
	 while( fread(&B,sizeof(B),1,fb)==1);

	 fseek(fb,0,SEEK_END);
	 printf("\n\t Enter No Of Books::");  scanf("%d",&num);
	 fflush(stdin);
	 printf("\n Enter Name::"); gets(B.bname); B.bname[19]=' '; B.bname[20]='\0';
	 fflush(stdin);
	 printf("\n Enter Author's Name::"); gets(B.author); B.author[14]=' '; B.author[15]='\0';
	 fflush(stdin);
	 printf("\n Enter Publisher's Name::"); gets(B.pub); B.pub[19]=' '; B.pub[20]='\0';
	 fflush(stdin);
	 printf("\n Enter Book Price::");  scanf("%d",&B.price);
	 for(i=0;i<num;i++)
	 {
	   B.b.no=i+1;
	   fwrite(&B,sizeof(B),1,fb);
	 }
  }

اكتشافات علمية في قيام الليل

من فوائد الحمـــى

هل تريد اكثر من مليار حسنه في دقيقه واحده ......

فقط قل هذه الجمله وستأخذ عن كل مسلم حسنه من غير أن ينقص من أجرهم شيئا

اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء منهم و الأموات

وتأخذ عن كل واحد حسنه فانظر كم عدد المسلمين

كلمتان خفيفتان على اللسان ثقيلتان في الميزان حبيبتان على الرحمن

" سبحان الله وبحمده سبحان الله العظيم"

* دقيقة واحده : تستطيع ان تقول لاحول ولا قوة الا بالله اكثر من ( 40 ) مره وهي كنز من كنوز الجنه .

دقيقة واحدة : تستطيع ان تصلي على النبي صلى الله عليه وسلم ( 20 ) مره فيصلي عليك الله مقابلها

( 200 ) مره وحطة عنه ( 200 ) خطيئة من خطاياه ، ورفع له ( 200 ) درجة .

#2

الكود غير منسق!

قم بتنسيقه لنتمكن من قراءته.

واطرح السؤال أيضا بوضوح، ماذا تريد أن تفعل، وما الخطأ الذي يواجهك؟

#3

يا اخي والله عيب عليك, 169 مشاركة ولم تتعلم بعد كيف تطرح سؤال...

هناك عنوان للموضوع يطرح فيه العنوان فقط وليس السؤال بالكامل, وفى داخل الموضوع تطرح السؤال ثم تضع الشفرة, ويجب ان تكون الشفرة منسقة بترميزة الكود وليس كما طرحتها انت...

الرجاء الالتزام بقواعد المشاركة .....

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#4

أخي العزيز

من نظرة سريعة في الدلةmain لاحظت أنك لم تقم باستدعاء الدالة addbook فكيف سيتم تخزين أي بيانات؟

لم أقرأ الكود لذا لا أعلم إن كان هناك أي أخطاء في الدالة addbook ....

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#5

بسم الله الرحمن الرحيم

السلام عليكم

بالنسبة للاخطاء البرمجية

أنتا كاتب ف الmain

struct book_record B;

أين تعريف ذلك الstruct ؟؟ أعتقد انك تقصد book structure !

تانى حاجة أنتا فاتح الملف ف الmain وبعد كدة مستخدمة داخل الدالة ؟؟؟ طب أية المانع لما أفتح الملف داخل الدالة للقراءة مرة وللكتابة مرة

أيضا عندما يتم فتح الملف لازم يتم غلقة بإستخدام fclose method

أيضا نسيت تنادى الدالة داخل الmain كا قال الزميلcipher

ودة التعديل حتى تكتب ف الملف وتقراء منة

void addbook()
{	fb=fopen("book.dat","a+");
	 int num,i;
	 clrscr();
	 rewind(fb);

	 fseek(fb,0,SEEK_END);
	printf("\n\t Enter No Of Books::");  scanf("%d",&num);
	 fflush(stdin);
	 printf("\n Enter Name::"); gets(B.bname); B.bname[19]=' '; B.bname[20]='\0';
	 fflush(stdin);
	 printf("\n Enter Author's Name::"); gets(B.author); B.author[14]=' '; B.author[15]='\0';
	 fflush(stdin);
	 printf("\n Enter Publisher's Name::"); gets(B.pub); B.pub[19]=' '; B.pub[20]='\0';
	 fflush(stdin);
	 printf("\n Enter Book Price::");  scanf("%d",&B.price);
	 for(i=0;i<num;i++)
	 {
	   B.b.no=i+1;

 }
	   fwrite(&B,sizeof(B),1,fb);
		   fclose(fb);


		fb=fopen("book.dat","r");
 while( fread(&B,sizeof(B),1,fb)==1)
	 {cout<<B.bname<<endl;}		fclose(fb);
  }

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

شكرا اخي eng_3llamعلى الاجابة الانها فادتني ايضاولكن احب ان اسال عندما احفظ لبيانات كيف اتاكد انها احتفظت ارجو الاجابة با مساعدة كود السائل كود المكتبة وشكرا

#7

بالنسبة لموضوع معرفة ان هل البيانات تم حفظها أم لا

ممكن تعمل متغير global ممكن يكون boolean عندما يتم حدوث خطأ فى الكتابة البيانات للملف يكون بfalse ويتم تخزينة ف ملف ع حدا وعند بداية الكتابة ف الملف مرة اخرى أعمل check لو كان بfalse أطبع رسالة للمستخدم تعرفة بأن تم إدخال بيانات من المستخدم ولكن لم يتم حفظها ع الهارد ديسك

أما عندما تتم عملية الحفظ بنجاح سيكون قيمة المتغير بtrue

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

يارب تكون الفكرة وضحت وأعتذر عن التأخر ف الرد بسبب أن الكبيورد بتاعتى كانت بايظة :)

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

هذا الموضوع مغلق.

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

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

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

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

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