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

خطأ في الكتابة في ملف عشوائي

مغلق
بدأه malek_sa في 26 يناير 2007 · 1 رد · 670 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عند الكتابة في ملف عشوائي تكون الأمور على ما يرام .. و عند القراءة من الملف تظهر لي بيانات خاطأة (غير مفهومة ) ..

هذا هو كود الكتابة على الملف

	struct student {
		int id;
							  ...................
	};

ofstream outf("std.txt",ios::ate);
		if(!outf) {
			cerr<<"file not found";
			exit(1);
		}
outf.seekp ((std.id-1)*sizeof(student),ios::beg);
			outf.write ((char *)&std,sizeof(student));
outf.close();

و هذا كود القراءة

student std;
		ifstream inf("std.txt",ios::in);
		if(!inf)
		{
			cerr<<"(file not found)";
			exit(1);
		}
		inf.seekg((id-1)*sizeof(student),ios::beg);
		inf.read ((char *)&std,sizeof(student));

أرجو المساعدة

مرفق الملف الذي أعمل به

ملاحظة : أعمل على turbo c++ 4.5 ..

طبعا لا تسألوني لماذا ... هذا هو المطلوب في الواجب

___________.rar

تم تعديل هذه المشاركة بواسطة malek_sa في 26 يناير 2007 في 00:26

SCJP 5.0

#2

في هذا السطر

inf.seekg((id-1)*sizeof(student),ios::beg);

الــid غير معرف و اظنك تقصد std.id ؟

وعلى ما اظن ان التحويل بهذه الطريقه غلط

outf.write ((char *)&std,sizeof(student));

التحويل يكون كذا

outf.write(reinterpret_cast<char *>(&std),sizeof(student) ) ;

وعلى مايبدولي انك تشتغل في لغة الـC ولا انا غلطان ؟

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

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

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

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

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

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