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

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

بدأه khaled_prg في 9 أكتوبر 2010 · 2 رد · 575 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

#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 في 9 أكتوبر 2010 في 11:18

#2

السلام عليكم

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

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

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

2
#3

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

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

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

while (cin>>x)

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

56019e8e4d.png

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

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