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

كيف اقراء اكثر من ملف في C++

بدأه mr.marce في 2 أغسطس 2009 · 2 رد · 618 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ارجو من ذوي الخبرة بالتكرم في مساعدتي بحل مشكلتي

كيف استطيع قراءة اكثر من ملف بشكل متتال في السي بلس بلس

مثال:

عندي مجموعه من الملفات مثلا a.txt b.txt c.txt .........z.txt

كل ملف فيه مجموعه من الارقام وبعضها متكرر

فأريد اقراء كل ملف واطلع الارقام المتكررة

وفي النهاية اطبع تقرير في الشاشة بعدد الملفات المقروءة وعدد الارقام المتكررة واحفظ كل رقم مكرر في ملف نصي txt

ارجو التكرم بمساعدتي

ملاحظة: اهم شي اريده كيف اقراء عدة ملفات واستخدم classes

#2

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

بما أن السؤال لسي++ فيسوف يتم نقله لقسم سي++ ..

نرجع للسؤالك :

اقتباس
كيف استطيع قراءة اكثر من ملف بشكل متتال في السي بلس بلس

هناك عده حلول ، الأول هو وضع اسماء الملفات في حلقة ومن ثم قرائتها :

#include <iostream>
#include <fstream>
using namespace std; 

int main () {
	string filesName[] = {"a.txt","b.txt","c.txt"};

	for (int i=0; i<3; i++ ) {
		cout << filesName << endl;

		// open file strean (ifstream) 
		// ifstream inFile ( filesName.c_str() );
	}

	return (0);
}

حل متعب وغير احترافي ...

حل أخر باستخدام ostringstream ونقوم كل مره بتغيير الإسم الأول كما يلي :

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std; 

int main () {
	ostringstream oss;
	char ch = 'a';
	for (int i=0; i<3; i++ ) {
		oss << ch++ << ".txt";
		cout << oss.str().c_str() << endl;
		oss.seekp(0);	// to begin next time from start ..

		// open file strean (ifstream) 
		// ifstream inFile ( filesName.c_str() );
	}

	return (0);
}

بالطبع دائماً هناك حلول أخرى :wink:

الأن قم بالقرائه من الملف ،وأحسب التكرارات ،، هل لديك فكره معينة ؟؟

بالتوفيق :) .

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3
اقتباس
بما أن السؤال لسي++ فيسوف يتم نقله لقسم سي++ ..

عذرا ع الخطأ وشكرا ع التصحيح

اقتباس
هناك عده حلول ، الأول هو وضع اسماء الملفات في حلقة ومن ثم قرائتها :

#include <iostream>
#include <fstream>
using namespace std; 

int main () {
	string filesName[] = {"a.txt","b.txt","c.txt"};

	for (int i=0; i<3; i++ ) {
		cout << filesName << endl;

		// open file strean (ifstream) 
		// ifstream inFile ( filesName.c_str() );
	}

	return (0);
}

حل متعب وغير احترافي ...

فكرت في ها الحل بس مثل ما تفظلت متعب

اقتباس
حل أخر باستخدام ostringstream ونقوم كل مره بتغيير الإسم الأول كما يلي :

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std; 

int main () {
	ostringstream oss;
	char ch = 'a';
	for (int i=0; i<3; i++ ) {
		oss << ch++ << ".txt";
		cout << oss.str().c_str() << endl;
		oss.seekp(0);	// to begin next time from start ..

		// open file strean (ifstream) 
		// ifstream inFile ( filesName.c_str() );
	}

	return (0);
}

في الحقيقة اول مرة اقابل هذي الطريقة بس شكلها حلوة

تسلم

اقتباس
بالطبع دائماً هناك حلول أخرى :wink:

الأن قم بالقرائه من الملف ،وأحسب التكرارات ،، هل لديك فكره معينة ؟؟

بالتوفيق :) .

فكرت في طريقة ثانية وهي سؤال المستخدم في كل مرة اذا في ملف اخر يريد قرائته ويكتب اسمه بس يمكن متعبه للمستخدم اذا يريد يقراء ملفات كثيرة

ع العموم مشكور ع مرورك والرد الحلو

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