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

تعديل كود القراءة من ملف النصي التكست و استخدام جملة سوتش

بدأه Gigaman في 25 فبراير 2009 · 4 رد · 603 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لم اعرف ما هو الخطأ الموجود في البرنامج الذي قمت بكتابته

الهدف كود القراءة من ملف النصي التكست و استخدام جملة سوتش

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

Create a text file of the following data.  

called data.txt
1000 4.0
1000 2.0	
1000 1.5
1010 2.0
1010 2.2
1010 1.9
1050 2.8
1050 4.2
1100 1.7
1100 1.6
1250 2.2
1250 4.5
1300 4.0
1300 5.1
1300 3.4
1350 1.1
1350 1.2
1350 2.0

الان الجدول الاتي فيه ايدي البحيرة و اسمها

 
Lake ID		Lake Name
---------------------------------------	 
1000			Chemo 
1010			Eddington
1050			Hopkins
1100			Toddy 
1250			Branch
1300			Phillip
1350			Green

و المطلوب كالاتي جدول فيه الخانات الثلاث بالفراغات

ID............Lakename.............avg

الكود الي انا عامله طلع في اخطأء اول شيء لا يقرأ كل القيم

و لا يستفيد من عبارة switch في التحكم

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

int main ( )
{
int lakeid;					// Lake ID declartion
double fishwgt;				// fish weight in pounds declartion	
char LakeName;				//Lake name in Charchter declartion	
ifstream  fin;				// declare input file stream object 
fin.open ("data.txt");		// open the file
if ( fin.fail( ) )		

{	cerr << "open failure";		
	exit(1);			// end the program with an error return code
}

fin >> lakeid >> fishwgt;		// read the int lakeid and the double fishwgt values 


switch (lakeid)
  { 
case 1000 :	 LakeName = "Chemo"; 	 
case 1010 :   LakeName = 'Eddington'; 
case 1050 :  LakeName = 'Hopkins';  
case 1100 :  LakeName = 'Toddy'; 
case 1250 :  LakeName = 'Branch';	 
case 1300 :  LakeName = 'Phillip'; 
ase 1350 :  LakeName = 'Green'; 
}

	cout << lakeid <<"\t"<<fishwgt<<"\n";
	fin.close ( );
	return 0;
}
post-1386-1223033542.jpg
#2

السلام عليكم ,,

أعتقد أنك تقصد شيئاً مثل هذا :wacko::

unsigned int lakeID;
double fishWeight;
std::string lake;
std::vector<std::string> lakes;
std::vector<unsigned int> lakesID;
std::vector<double> fish;
std::ifstream data( "data.txt" );

if( data.is_open() != true ){

	std::cerr << "open failure";
	return 1;
}

while( data >> lakeID >> fishWeight ){

	lakesID.push_back( lakeID );
	fish.push_back( fishWeight );

}

data.close();

for( unsigned int i = 0; i < lakesID.size(); i++ ){

	switch( lakesID ){

		case 1000:  lake = "Chemo"; break;
		case 1010:  lake = "Eddington"; break;
		case 1050:  lake = "Hopkins"; break;
		case 1100:  lake = "Toddy"; break;
		case 1250:  lake = "Branch"; break;
		case 1300:  lake = "Phillip"; break;
		case 1350:  lake = "Green"; break;
	}

	lakes.push_back( lake );
}

std::cout << std::fixed << std::setprecision(1) << std::left;

for( unsigned int i = 0; i < lakesID.size(); i++ )
	std::cout << std::setw(8) << lakesID << std::setw(10) << lakes << std::setw(10) << fish << std::endl;
#3

السلام عليكم

شكرا على ادراج المشاركة

لكن الاخطاء لاتزال موجودة

لم يعمل على visual studio 2008

ما هو الاصدار المحرر الذي تعمل عليه

post-1386-1223033542.jpg
#4
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
#include <vector>
#5

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

شكراً لك اخي الكريم

في الحقيقة الله يعطيك العافية و يجازيك على المعروف التي انت سويته

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

post-1386-1223033542.jpg

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

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

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

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

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