اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

خواندن رشته‌ها از ورودی

0 امتیاز
3,027 نمایش

روش‌های مختلفی برای گرفتن رشته از ورودی هست مثلاً


cin>>s;

که مشکلش اینه که اولین فاصله یا خط جدید که ببینه دیگه خوندن رو متوقف می‌کنه. یا با تابع getline()

getline(cin, s);

این تابع هم تا رسیدن به خط جدید فقط ادامه می‌ده. روشی که بشه تا رسیدن به یه کاراکتر null از ورودی رشته رو خوند چیه؟
در حالت کلی‌تر روشی که بشه تا رسیدن به یه کاراکترهای خاصی خوندن رو ادامه داد؟
تذکر: نمی‌خوام از این روش استفاده کنم که کاراکترها رو یکی یکی یا خط به خط بخونم و بعد پردازش کنم. عملیات سریع‌تری می‌خوام که مستقیماً از ورودی بخونه
برنامه‌ای که تست نشده کار نخواهد کرد (Stroustrup, Bjarne)
پرسیده شده جمعه ۱۰ آذر ۱۳۹۱ در C++ توسط CPP_Crawler3  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

1 پاسخ

+1 امتیاز

جایی خوندم وقتی نمیدونین طول رشته‌ای که قراره خونده بشه چقدره، ساده‌ترین راه اینه:

std::string strBuf;
std::getline( istream, strBuf, '\0' );

البته برای خودم این کد خطا گرفت. که احتمالا بابت فراخونی کتابخونه‌هاست.

پاسخ داده شده جمعه ۲۳ فروردین ۱۳۹۲ توسط CPP_Crawler4  

اون کاراکتر صفر می‌تونه هر کاراکتری باشه. این تابع تا جایی خوندن رو ادامه می‌ده که به اون کاراکتر خاص برسه.