PDA

View Full Version : بررسی عدد بودن ورودی



imdeveloper
سه شنبه 08 دی 1394, 11:21 صبح
سلام
میخواستم ببینم چطوری میتونم ورودی رو بررسی کنم که عدد هست یا نه!!؟
دنبال یه راه حل مبتدی هستم
گوگل کردم یه سری راه حل ها بود اما کمی پیچیده بود و نفهمیدم
چیزی که خودم به ذهنم میرسه اینه که کداسکی ورودی رو چک کنم که آیا برابر کد اسکی عدد هست یا نه

Poores
سه شنبه 08 دی 1394, 12:39 عصر
اگه ورودی یک کارکتر باشه که بصورت یک کارکتر دریافت می کنی ، خیلی راحت چک میکنی که بین '0' و '9' هست یا نه

اما اگه بیشتر از یک کارکتر بود مثلا ورودی 1355 باشه ، به صورت رشته ای ورودی رو دریافت میکنی و واسه هر کارکتر از رشته اینو چک میکنی که بین '0' و '9' هست یا نه ، هر کارکتری که این شرایطو نداشت یعنی ورودی عدد نیست.

imdeveloper
سه شنبه 08 دی 1394, 13:00 عصر
اگه ورودی یک کارکتر باشه که بصورت یک کارکتر دریافت می کنی ، خیلی راحت چک میکنی که بین '0' و '9' هست یا نه

اما اگه بیشتر از یک کارکتر بود مثلا ورودی 1355 باشه ، به صورت رشته ای ورودی رو دریافت میکنی و واسه هر کارکتر از رشته اینو چک میکنی که بین '0' و '9' هست یا نه ، هر کارکتری که این شرایطو نداشت یعنی ورودی عدد نیست.
ممنون از راهنماییتون
اما من دقیقا متوجه نشدم که چطور یپیاده سازی کنم
کد من اینه : void Student::setid(string b) {
id = b;
}

negative60
سه شنبه 08 دی 1394, 15:12 عصر
از توابع atoi یا stoi (http://www.cplusplus.com/reference/string/stoi/) که کارشون تبدیل رشته به عدد هست استفاده کنید

void Student::setid(string b) {
id = atoi(b.c_str());
}

اگر حروف وارد بشه ۰ برگردونده می‌شه