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

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

بدأه ABCDEFG في 8 يوليو 2009 · 2 رد · 465 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

بما أنني مشارك في الأولمبياد السوري للمعلوماتية و الفحص بعد 4 أيام

تقريبا عرفت كل شي في لغة سي بلس بلس

و بقى شغلة أخيرة هي التعامل مع الملفات

بدهاا تعقدني .............

المهم :

قرأت كل المواضيع المتعلقة بالملفات و مع ذلك فليس لدي المرونة الكافية لذلك

مثلا : ملف أول رقم به هو يدل على قيمة معينة مثلا عدد الأسطر اللتي بعده

عرفت اخذ هذا الرقم الأول

بس المشكلة كيف تخزين الأرقام بعده بمصفوفة ؟؟

و في مشاكل كتيرة بالنسبة للملفات :: مثلا لدينا ملف اول رقم نفس الشي يعبر عن عدد الأسطر

و بعده بكل سطر يوجد سلسلة نصية

كيف يمكنني أخذ كل سلسلة ووضعها في سطر لمصفوفة هندسية

مثلا هي هي المسائل :: بالنسبة لحل المسألة كلها حليتها بس بقى كيف اخذ القيم من ملف الدخل

http://www.aoi.org.sy/soi/download/soi2008_div_3.pdf

و المطلووب :: نصائح و طرق و أفكار للتعامل مع الملفات

تم تعديل هذه المشاركة بواسطة ABCDEFG في 8 يوليو 2009 في 23:32

#2

السلام عليكم

مثلا لو فرضنا ان الملف يحتوى على البيانات الآتيه

7

0 6 3 9

1 5 4 8

2 4 5 7

3 3 6 6

4 2 7 5

5 1 8 4

6 0 9 3

فيمكن المثال التالى أن يفيدك

#include<iostream>
#include <sstream>
#include <fstream>
using namespace std;
int main()
{
	char line[30];
	ifstream readFile("value.txt");
	int numOfLines;
	int numbers[100][4],j=0,i;
	readFile.getline(line,30);
	stringstream s(line);
	s>>numOfLines;
	for ( i=0;i<numOfLines;i++)
	{
		readFile.getline(line,30);
		s.str(line);
		while (s>>numbers[j])
		{
			j++;
		}
		s.clear();
		readFile.clear();
		j=0;
	}
	// show the matrix
	for(i=0;i<numOfLines;i++)
	{
		for(j=0;j<4;j++)
			cout<<numbers[j]<<"  ";
		cout<<endl;
	}
	return 0;
}

طبعا على اعتبار ان السطر يحتوى على 4 ارقام , وان عدد الأسطر موجود داخل الملف فى بدايته

والأفضل هو استخدام الفيكتور كما تفضل الأخ خالد فى سؤال سابق لك

والمثال السابق فيه الداله getline وهى التى تقوم بالقراءه سطرا سطرا وتخزين السطر فى مصفوفه حرفيه

تحياتى

اللهم صل على سيدنا محمد وعلى آله وصحبه وسلم

#3

ممكن شرح لهذه الأسطر ::

stringstream s(line);

s.str(line);

readFile.clear();

while (s>>numbers[j]) ماهو هذا الشرط ؟؟

تم تعديل هذه المشاركة بواسطة taw92 في 9 يوليو 2009 في 22:58

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