PDA

View Full Version : سوال: چرا بعد از هر cin.get يك cin.ignore ?



irpersian20
دوشنبه 04 مهر 1390, 16:10 عصر
سلام
چرا بعد از هر cin.get اصولا يك cin.ignore استفاده ميشه؟
مطلبي در كتابي پيدا نكردم كه به درد بخور باشه و بفهمم .

vasilopita
دوشنبه 04 مهر 1390, 17:08 عصر
برای اینکه حافظه بافر رو پاک کنه. اگه برای مثال بنویسی


char chr1,chr2;
chr1=cin.get();
chr2=cin.get();


و از ignore استفاده نکنی می بینی که با زدن دکمه اینتر بعد از گرفتن اولین کاراکتر ، کاراکتر بعدی رو نمی گیره و در واقع کاراکتر بعدی کاراکتر اینتر خواهد بود

موفق باشید

irpersian20
دوشنبه 04 مهر 1390, 18:03 عصر
چرا اين مورد فقط در مواردي مثل تابع كار با رشته cin.get صادق هست؟
اگر اين طور هست 2 تا cin هم پشت سر هم بزاريم بايد مورد دومي رو نگيره و اينتر قرار بده.

rezaheidarida
دوشنبه 04 مهر 1390, 22:42 عصر
وقتی از gets وcin تو یه حلقه for هم استفاده کنی به همچین چیزی برمی خوری!!!
تا مدت ها خودم باهاش مشکل داشتم!