السلام عليكم ,,
سأقوم بترجمة بعض النصائح و الارشادات ( بتصرف من عندي ) التي يقدمها العم Stroustrup للمبرمجين في موقعه للاخوة الذين يريدون معرفة بعض التفاصيل ,,
و هذه النصيحة هي الأولى ,,,
غالباً ما يعاني المبتدئون عند تعاملهم مع الكائن cin في قراءة المدخلات من المستخدم , و ذلك لعدم فهمهم لطريقة عمل هذا الكائن ,,
فمثلاً لا يعرف الكثيرون كيفية قراءة سطر كامل من command line و تخزين هذا السطر في متغير string ,,
فمثلاً ..
#include <iostream>
#include <string>
using namespace std;
int main () {
string word;
cout << "Please enter a word : ";
cin >> word;
cout << endl
<< "You entered : "
<< word;
return 0;
}
و قام المستخدم بادخال التالي :
>> This is my advice
فالمفروض أن المتغير word سيخزن التالي : This is my advic و لكنه سيخزن This فقط !!!
و السبب أن الكائن cin يعتبر المسافة أو " " فاصلاً بين كل مدخل و آخر ,, لذلك سيقوم بتخزين الكلمة This ثم سيواجه المسافة فيتوقف! ,, لذلك إذا أردت قراءة سطر كامل كل ما عليك هو استخدام دالة getline و التي تقرأ سطراً كاملاً ثم تتوقف ,,
مثلاً ..
#include <iostream>
#include <string>
using namespace std;
int main () {
string sentence;
cout << "Please enter a word : ";
getline ( cin, sentence );
cout << endl
<< "You entered : "
<< sentence;
return 0;
}
تأخذ الدالة get line الكائن cin و المتغير النصي الذي تريد تخزين السطر كاملاً فيه ,,
فالمتغير sentence سوف يحتوي على This is my advice ,,
إذا كان هناك أي تعليق أو استفسار نحن في الخدمة
و هذا رابط النصيحة Reading a String
تحياتي ,,