نصائح العم Stroustrup النصيحة الأولى : كيفية قراءة سطر كامل من command line!

الناقل : elmasry | الكاتب الأصلى : Khaled.Alshaya | المصدر : www.arabteam2000-forum.com

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


سأقوم بترجمة بعض النصائح و الارشادات ( بتصرف من عندي ) التي يقدمها العم 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 ,,

إذا كان هناك أي تعليق أو استفسار نحن في الخدمة :rolleyes:

و هذا رابط النصيحة
Reading a String

تحياتي ,,