توابع ورودی/خروجی کاراکتری C++
در پست قبل با برخی از انواع کاراکتری C++ اشنا شدیم. در این برخی از توابع از پیش نوشته شده ی استاندارد برای ورودی و خروجی را مرور می کنیم.
cin.get() :
اگر متغیر ch یکی از انواع کاراکتری باشد، برای خواندن آن از ورودی میتوانیم از تابع get استفاده کنیم. مثال :
cin.get (ch);
cout.put(); :
تابع put که از اعضای تابع cout است، بر عکس تابع get برای فرستاندن کاراکتر به کاراکتر به خروجی به کار می رود. این دو تابع برای توابع دیگر از قبیل cerr ، wcerr ، wcout و .. نیز موجود هستند. نحو این تابع به صورت زیر است.
cout.put (ch);
cin.putback() :
تابع putback کاراکتر خوانده شده را به جریان ورودی بر میگرداند. پس از این دستور میتوان دوباره کاراکتر را با تابع cin خواند. این تابع برای مواقعی مفید است که می خواهید شرطی برای خواندن یک کاراکتر از ورودی قرار دهید. نحو تابع :
cin.putback (ch);
cin.ignore() :
وظیفه ی تابع ignore نادیده گرفتن کاراکتر های ورودی طبق ارگومان های ارسالی است. این تابع دو آرگومان دارد که اولی حداکثر کاراکترهایی است که بدون پردازش رها می شوند و آرگون دوم کاراکتر مورد نظر برای خاتمه پردازش است. این تابع به محض اینکه به این کاراکتر برخورد کند یا از حد تعیین شده عبور کند، دریافت از ورودی را خاتمه می دهد و برنامه را به خط بعدی (که میتواند یک تابع ورودی باشد) واگذار می کند. مثال :
cin.ignore (70 , 'Z');
cin.get (ch);
cin.peek() :
این تابع کاراکتر کارکتر را از ورودی دریافت می کند و آن را در متغیر می ریزد و سپس آن را به جریان ورودی می فرستد تا تابع ورودی بعدی بتواند دوباره آن را بخواند. مثال :
char ch, ch2;
ch = cin.peek (ch);
cin >> ch2;
cout << ch << endl << ch2 ;
در کد بالا کاراکتر وارد شده هم در ch و هم در ch2 ذخیره می شود.
cin.getline() :
تفاوت تابع getline با get در این است که این تابع یک رشته ی کاراکتری را از ورودی دریافت می کند. به همین دلیل کاربرد آن برای یک کاراکتر امکان پذیر نیست و به جای آن باید یک رشته ی کاراکتری به آن ارسال شود. این تابع را میتوان با دو یا سه پارامتر فراخوانی کرد. حالت کلی تابع به صورت زیر است.
char ch[10];
int size = 10;
char End = 'z';
cin.getline (ch, size , End);
پارامتر اول رشته ی کاراکتری است که ورودی درون آن ذخیره می شود و ch نام دارد. پارامتر دوم که size نام دارد، مشخص میکند که حداکثر چه تعداد کاراکتر از ورودی خوانده شود و پارامتر به نام End که کاراکتر مرزبندی نامیده میشود، مشخص می کند که پروسه ورودی با برخورد با چه کاراکتری خاتمه یابد. که در این جا مشخص شده است که تابع با برخورد با کاراکتر 'z' متوقف شود. پارامتر سوم در این تابع اختیاری است.
cin.read() :
تابع read نیز برای دریافت اطلاعات از ورودی با اندازه ی دلخواه به کار می رود. این تابع دو پارامتر دارد که اولی رشته ی کاراکتری و دومی حداکثر تعداد کاراکتر هایی است که از ورودی خوانده می شوند.
char ch[10];
cin.read (ch , 10);
در این پست با برخی از توابع عضو cin و cout آشنا شدیم که برای خواندن کاراکتر ها از ورودی و نمایش انها در خروجی به کار می روند. در پست های بعدی با توابع بیشتری آشنا می شویم.
GENERAL INFORMATION