PDA

View Full Version : دوستان این کد cin.get برای چی اینجوری شده؟



complexcoding
جمعه 19 خرداد 1391, 13:35 عصر
سلام دوستان
این کد
char *s;
cin.get(s,3,'.');
با زدن کلید اینتر دریافت رشته اتمام می پذیرد با رسیدن رشته به کاراکتر . نیز رشته به اتمام می رسد پس چرا در سطر سوم اینطوری می شه و بافر تهی می شه؟؟؟ و خط چهارم اینتر قبل از a می یاد ؟؟
88016
با تشکر

#target
جمعه 19 خرداد 1391, 14:42 عصر
مقدار 3 دادین پس تا 3 - 1 یعنی دو کاراکتر میگیره

complexcoding
جمعه 19 خرداد 1391, 16:49 عصر
پس چرا تو خط چهارم کاراکتر اینتر رو گذاشته تو s یعنی بافر رو قرار داده؟ در صورتی که در بقیه سطرها کاراکتر اینتر رو از بافر نگرفته و فقط در خط چهارم اینکارو کرده؟

complexcoding
دوشنبه 22 خرداد 1391, 20:00 عصر
داداشها و آبجی ها یکی جواب ما رو بده؟

#target
دوشنبه 22 خرداد 1391, 21:20 عصر
در چهارمین بار اول ی اینتر زدی بعد a دو کاراکتر شده دیگه ! (یکی هم برای آخر رشتهNULL که میشه سه تا )

jannatmakan
پنج شنبه 25 خرداد 1391, 05:15 صبح
سلام. اگر اشتباه نکنم؛ این cin.get که شما گفتی به نظرم یه قلق داره که براتون توضیح می دم. فکر کنم اگر این طوری استفادش کنید، مشکلتون حل بشه.


char *s;
cin.get(s,3,'.');
cin.get();


یعنی هردفعه که cin.get() رو استفاده کردید. یه دونه دیگه هم بدون پارامترش رو زیرش اضافه کنید.