ورود

View Full Version : محدود کردن طول ورودی در cin



amir_cpp
چهارشنبه 06 خرداد 1388, 11:51 صبح
با سلام خدمت دوستان عزیز.
همون طور که همتون می دونین اگر قرار باشه یه مقداری رو با cin یا scanf از ورودی بخونیم، کاربر می تونه تا جایی که دلش می خاد از کی بورد حرف وارد بکنه و این بعضی موقع ها ظاهر برنامه رو به هم می ریزه. آیا کسی راهی برای محدود کردن طول ورودی بلده؟
البته من تو پاسکال یه ابتکاری انجام داده بودم! یعنی با readkey (معادلش getch در ++C) کاراکتر می خوندم و کاراکترها رو در آرایه قرار می دادم و به این ترتیب ورودی محدود می شد. اما مشکل عجیب در ++C اینه که اصلا نمی شه کاراکتری رو تو یک رشته (اشاره گری از کراکتر) قرار داد. اصلا چیزی ذخیره نمی شه و اگر هم ذخیره بشه، چرت و پرته، نه کاراکترهایی که من وارد کردم.
ممنون می شم اگه بتونین کمک کنید.

tdkhakpur
چهارشنبه 06 خرداد 1388, 13:34 عصر
سلام
از کد cin به روش زیر استفاده کن.
موفق باشید.


char p[20];
cin.getline(p,50);

Mbt925
چهارشنبه 06 خرداد 1388, 13:52 عصر
هر دو روش محدود کردن ورودی با متدهای cin , scanf رو در مثال زیر مشاهده کنید:


#include <cstdio>
#include <string>
#include <iostream>
using namespace std;

int main()
{

string str;
cin.width(5);
cin >> str;

char strchar[10];
scanf("%5s",strchar);


return 0;
}