# Native Code > برنامه نویسی با C > برنامه نویسی با Borland C++‎ Builder >  مشکل وارد کردن رکورد در دفترچه تلفن C++‎‎

## خلیل غ

با سلام خدمت اساتید
من یه دفترچه تلفن در C++‎ نوشتم. اما یه مشکل داره. اونم اینه ، زمانی که از منوی حذف یا ویرایش رکورد بر میگردم به منوی اصلی و میخوام رکورد جدید وارد کنم. به جای اینکه ابتدا اسم رو بگیره بعد شماره; مستقیما بعد از زدن اینتر از اسم میگذره و میره سراغ شماره تلفن. فایل سورس براتون میفرستم

----------


## pbm_soy

من کد شما را ندیدم ولی اون بخش دریافت داده ها را اینجا میگذاشتید بهتر میشد ، چون بیشتر کاربران این سایت سورس شما را دانلود نمیکنند! ( بنا به دلایل مختلف)

ولی حدس میزنم شما چندین دستور دریافت داده را پشت سرهم گذاشتید! معمولا دستورات ورودی که برای رشته ها استفاده میشوند کد کلید اینتر را نمیخوانند منظورم از بافر صفحه کلیدنمیگیرند و در متغییر ذخیره نمیکنند! پس کد کلید اینتر در بافر صفحه کلید باقی مانده است و اولین دستور ورودی بعدی وقتی بافر صفحه کلید را میخواند اینتر را میخواند و اینتر هم به معنی وارد کردن داده توسط کاربر است!

بطور خلاصه:
بعد از دریافت مقدار رشته ای همیشه سعی کنید بافر صفحه کلید را خالی کنید مثلا در C++‎ متد ignore جریان ورودی cin.ignore 

بازهم اگر کد را همینجا میگذاشتید دوستان بهتر راهنمایی میکردند!

----------


## خلیل غ

> من کد شما را ندیدم ولی اون بخش دریافت داده ها را اینجا میگذاشتید بهتر میشد ، چون بیشتر کاربران این سایت سورس شما را دانلود نمیکنند! ( بنا به دلایل مختلف)
> 
> ولی حدس میزنم شما چندین دستور دریافت داده را پشت سرهم گذاشتید! معمولا دستورات ورودی که برای رشته ها استفاده میشوند کد کلید اینتر را نمیخوانند منظورم از بافر صفحه کلیدنمیگیرند و در متغییر ذخیره نمیکنند! پس کد کلید اینتر در بافر صفحه کلید باقی مانده است و اولین دستور ورودی بعدی وقتی بافر صفحه کلید را میخواند اینتر را میخواند و اینتر هم به معنی وارد کردن داده توسط کاربر است!
> 
> بطور خلاصه:
> بعد از دریافت مقدار رشته ای همیشه سعی کنید بافر صفحه کلید را خالی کنید مثلا در C++‎‎ متد ignore جریان ورودی cin.ignore 
> 
> بازهم اگر کد را همینجا میگذاشتید دوستان بهتر راهنمایی میکردند!







void EnterData()
 {
            if(maxlist>2000)

     {
     gotoxy(5,20);
      textcolor(LIGHTRED);
      textbackground(0);

     cprintf("     the list is full. please enter any key to continue ");
         getch();}

       else
       {
     gotoxy(5,20);
textcolor(YELLOW);
textbackground(0);
           cprintf( "\n enter name: ");

        cin.getline(P,50);
        strcpy(name[maxlist],P) ;

      gotoxy(5,23);
textcolor(YELLOW);
textbackground(0);
      cprintf( "\n enter phone number: ");
        cin.getline(K,50);
        strcpy(number[maxlist],K) ;
         maxlist++;
          }

}

----------


## خلیل غ

cin.ignore را بعد از گرفتن رشته قرار بدم؟؟ خود رشته از حافظه پاک نمیشه و فقط اینتر حذف میشه؟؟

----------


## خلیل غ

> من کد شما را ندیدم ولی اون بخش دریافت داده ها را اینجا میگذاشتید بهتر میشد ، چون بیشتر کاربران این سایت سورس شما را دانلود نمیکنند! ( بنا به دلایل مختلف)
> 
> ولی حدس میزنم شما چندین دستور دریافت داده را پشت سرهم گذاشتید! معمولا دستورات ورودی که برای رشته ها استفاده میشوند کد کلید اینتر را نمیخوانند منظورم از بافر صفحه کلیدنمیگیرند و در متغییر ذخیره نمیکنند! پس کد کلید اینتر در بافر صفحه کلید باقی مانده است و اولین دستور ورودی بعدی وقتی بافر صفحه کلید را میخواند اینتر را میخواند و اینتر هم به معنی وارد کردن داده توسط کاربر است!
> 
> بطور خلاصه:
> بعد از دریافت مقدار رشته ای همیشه سعی کنید بافر صفحه کلید را خالی کنید مثلا در C++‎‎‎ متد ignore جریان ورودی cin.ignore 
> 
> بازهم اگر کد را همینجا میگذاشتید دوستان بهتر راهنمایی میکردند!




املای صحیحش چیه؟  cin.ignore;   یا cin>>ignore;   ???

----------


## pbm_soy

Cin.ignore(1000,"\n");

----------


## pbm_soy

یا اینکه یک cin اضافی بگذارید
ویا از توابع سنتی مانند gets میتوانستید استفاده کنید البته یادم نمیاد همچین مشکلیداشت یاخیر؟!
ویا اصلا با استفاده از تابع getch , getche تابع دریافت کننده رشته برای خودتان بنویسید! خیلی راحت بایک حلقه while میتوانید کاراکترها را دریافت کنید و درصورت مخالف بودن با کد اینتر آنرا در آرایه ذخیره کن واگر اینتر باشد در آرایه کاراکتر '\n' را ذخیره کن و از حلقه خارج شو

----------


## darya62

سوال : برنامه نویسی به زبان ++C با خروجی به شکل گراف				 							سلام 
 ببخشید من سوالمو اینجا مطرح میکنم 
 من یه برنامه به زبان C++‎‎‎ نوشتم  ، می خوام خروجی هام به صورت گراف در بیاد ، آیا تابع یا کدی هست که چنین کاری رو انجام بده ؟ ( خروجی به صورت graph. )
اگه کسی میدونه لطفا راهنماییم کنه 
 ممنون

----------

