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

مشكله مع getline =(

بدأه the hope في 8 مايو 2010 · 7 رد · 837 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

صباحكم/مساؤكم معطر بالياسمين

عندي مشكلة مع فنكشن getline

لما اسوي

string name;
cout<<"\nenter name  : ";
     getline(cin,name);
cout<<"\nenter number  : ";
     cin>>number;

مايسمح لي ادخل شي , يروح للسي آوت اللي بعده

جربت استخدم get نفس المشكله

هي تحصل معي غالبا اذا كنت استدعي الفنكشن داخل لوب مع اني احس ماله دخل :wacko:

عموما هذا الكود ممكن يوضح لكم المشكلة فقط الخيار 1 ..

#include<iostream>
#include<string>
using std::string;
using namespace std;

void add(){
     string name , s;
     int num;
     cout<<"\nenter name : ";
     getline(cin,name,'\n');
     //cout<<endl<<d.key;
     cout<<"\nenter number : ";
     cin>>num;

     cout<<"\nenter the string : ";
     getline(cin,s,'\n');
}
int main()
{
int i=0;
    do{
    cout<<"\n 1. Insert \n";
    cout<<" 2. Delete \n";
    cout<<" 3. print \n";

    cout<<"enter your choise\n";
    cin>>i;



        switch (i)
        {
        case 1:
            add();
            break;

        case 2:

            break;

        case 3:

            break;

    }}while(i>0 && i<4);


system("pause");
return 0;
}

السؤال ما الداله التي تسمح لي بإدخال سترينق مع المسافات ؟؟ :unsure:

أو مالخلل في طريقة كتابتي للكود!! :huh:

اتمنى ان احصل على الحل لهذه المشكلة :blush:

#2

وعليكم السلام:

getline(cin,name);
	cin.ignore();

cout<<"\nenter number : ";
	cin>>number;

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 8 مايو 2010 في 05:43

tvquran_6.gif

#3

اسعدك الله اخي الفاضل على سرعة تجاوبك

وفرج عنك همي الدنيا والاخرة

 cin.ignore();

لكــــــــــــــــــن

اذا ادخلت اسم ثم سبيس ثم اسم ثم انتر يعلق البرنامج :wacko:

وحتى اذا ادخلت اسم واحد فقط بدون سبيس ثم ضغطت انتر يعلق :ohmy:

فمالحل!!!

تم تعديل هذه المشاركة بواسطة the hope في 8 مايو 2010 في 16:38

#4

أكتبها هكذا لتضمن عملها :

cin.ignore(255,'\n');

تم تعديل هذه المشاركة بواسطة فهدالشلوي في 8 مايو 2010 في 17:56

tvquran_6.gif

#5

حقاً لا اعلم كيف اشكرك اخي الكريم !!

اسأل الله العظيم رب العرش العظيم ان يرزقك الفردوس الاعلى وصحبة نبيه الكريم ..

افادتني المعلومات التي اعطيتني اياها كثيــــــــراً ,

ووالله اني اشعر بالخجل لكثرة استفساراتي ولكن كلي امل بكرمكم وسعة صدركم ..

ظهرت لي ايضا مشكلة اخرى :unsure:

الاوهي حين اضع امر طباعة للمتغير الذي ادخلت فيه الاسم حتى اتأكد انه أُدخل بشكل سليم ,لا يطبع لي شيئاَ ..

مثل هذا التعديل الذي عدلته بالكود السابق حيث انه يطبع لي كلمة name فقط , ولا يطبع مابداخل المتغير !!

cout<<"\nenter name : ";
     getline(cin,name);
      cin.ignore(255,'\n');
       cout<<"name "<<name;

رزقك الله من حيث لا تحتسب ووفقك..

#6

هكذا اكتب الكود:

#include<iostream>
#include<string>
#include<limits>
using std::string;
using namespace std;
string name , s;
int num;
void add(){

 	cout<<"Enter name: ";
 	getline(cin,name);
 	cout<<"Enter number : ";
 	cin>>num;
 	cin.ignore() ;
 	cout<<"Enter the string : ";
 	getline(cin,s);



}
int main()
{
int i=0;
	do{
	cout<<"\n 1. Insert \n";
	cout<<" 2. Delete \n";
	cout<<" 3. print \n";
	cout<<"enter your choise\n";
	cin>>i;

 	cin.ignore() ;
	switch (i)
 	{
 	case 1:
 	add();
 	break;
 	case 2:
 	break;
 	case 3:

 	cout<<name<<endl;
 	cout<<num<<endl; 
 	cout<<s<<endl;
 	break;
	}}while(i>0 && i<4);


system("pause");
return 0;
}
tvquran_6.gif

#7

السلام عليكم

جزاك ربي الفردوس الاعلى

نسخت الكود الذي عدلته ونفس المشكلة ,

لا يعرض لي مابداخل المتغيرات من قيم !!

:unsure:

#8

الحمدلله وضعت في نهاية فنكشن add()

امر الطباعه وطبع لي القيم :lol:

مع العلم انني لم انتبه الى اني يجب ان اختار رقم 3 حتى يطبع لي :P

جزاك ربي الفردوس الاعلى , حقا لاعلم كيف اشكرك :blush:

تم تعديل هذه المشاركة بواسطة the hope في 9 مايو 2010 في 00:52

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