السلام عليكم
هذي الدالة تقوم بعمل Load من ملف .dat يحمل بيانات الى متغير char* .
هذي هي محتويات الملف .dat :
17abdullah sa ds xx
الرقم الأول يمثل عدد الحروف والباقي يمثل الكلمة المحفوظة التي اريد عمل load لها و اسنادها الى المتغير char*
وهذي هي الدالة التي تقوم بعمل Load :
void Sentence::load()
{
char* fileName = new char[ 10 ];
cout <<"Input file name( less than 10 characters, e.g., f_name.dat ): ";
cin.getline( fileName, 10 );
ifstream inFile( fileName, ios::in );
if ( !inFile )
cerr <<"File could not be opened!\n";
else
{
inFile >> length;
delete [] sentencePtr;
sentencePtr = new char[ length ];
inFile >> sentencePtr;
}
}المتغير الذي أريد ان اسند اليه الكلمة هو sentencePtr وهو مؤشر .
المشكلة الآن ان الدالة لا تقوم بعمل Load بالشكل المطلوب ، فتقوم باسناد الكلمات الى sentencePtr وعندما تصل الى مسافة تتوقف ولا تأخذ ما بعدها !
ارجو ان اجد الحل ، وهل لو استخدمت string بدلا من char* بيتغير الوضع ؟ وكيف اقوم بذلك خاصة وان هناك مسافات بين الكلمات في ملف .dat .