• 0
khaled_prg

أرجو مساعدتكم في هذا الكود

سؤال

السلام عليكم

أرجو منكم مساعدتي في هذا الكود :

#include<iostream>
#include<string>
using namespace std ;
int main()
{
string word ="";
char x ;
cout<<"enter your words :";
while (cin.get(x))
{
if (x=='\n')
{
break ;
}
word += x ;
cout<<word<<endl;
}
cout<<"Out of While : "<<word<<endl;
system("pause");
}

و بالتحديد هذا السطر :

while (cin.get(x))

هذه صورة لمخرجات البرنامج :

b1c8f4eeab.png

تحياتي.

تم تعديل بواسطه khaled_prg
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

السلام عليكم

الكائن cin هو للادخال و هو من الفئة istream

في هذه الفئة توجد الدالة get التي تستعقبل متغير من نوع char و تقوم بقرائة حرف من المستخدم و ادخاله في المتغير الذي ارسل لها و اذا كان المتغير غير فارغ (اي تم ادخال الحرف من المستخدم) ستعيد true

كخلاصة في الكود السابق يتم تنفيذ الحلقة while مادام المستخدم يكتب و عند توقفه عن الكتابة او الضغط علىenter (لان هناك شرط على الضغط على enter و هو x == '\n' و بعده break ) سيتم الخروج من الحلقة .

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

طيب, إذا كان الحال هكذا فلدي سؤالان :

1- في الحالة العادية (كما هو مكتوب في الكود) يجب أن نُدخل حرف واحد, ولكن ماذا لو أدخلنا كلمة (كما في الصورة بالأعلى), كيف سيكون التخزين !؟

2- قمت باستبدال cin.get بـ cin هكذا :

while (cin>>x)

ثم قمتُ بتنفيذ البرنامج و كانت النتئج كما في الصورة :

56019e8e4d.png

لماذا يطلب البرنامج أكثر من عملية إدخال !؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .