PDA

View Full Version : جلوگیری از وارد شدن حرف



rexi1r
سه شنبه 17 اسفند 1389, 20:49 عصر
سلام دوستان من یه متغیر int تعریف کردم ولی وقتی حرف وارد میشه برنامه سرریز میکنه چطوری می تونم تشخیص بدم حرف وارد شده و جلوشو بگیرم در ضمن متغیر من آرایه هم نیست

amin1softco
سه شنبه 17 اسفند 1389, 23:21 عصر
با یک شرط ساده بگو اگه کلیدی فشرده شد و کد اسکی اون بین 0-9 بود قبولش کنه یک چیزی تو این مایه ها

if(kbhit() & getch()>=0 & getch()<=9)

rexi1r
چهارشنبه 18 اسفند 1389, 02:23 صبح
من میخوام به این صورت یه متغیر int رو مقدار دهی کنم که اگه int وارد شد ذخیرش کنه اما اگه حرف وارد شد دوباره برگرده و مقدار اون متغیر رو از ما بخواد حتما تست کردید که وقتی می خواید با cin یه متغیر int رو مقدار دهی کنید اگه حرف وارد بشه برنامه خراب میشه و اگه مثلا قبل از گرفتن مقدار نوشته باشید enter number بی نهایت بار چاپ میشه حالا این چیزی که شما گفتید واسه اینه که بعد از اینکه مقدار رو گرفتید بررسی کنید ولی با توجه به چیزایی که توضیح دادم برنامه من به اون قسمت نمیرسه سریع همون بی نهایت جمله رو تکرار می کنه و برنامه خراب میشه حالا اگه روشی واسه گرفتن بلدید که int رو بگیره ولی اگه اشتباه وارد شد برنامه خراب نشه لطفا بگید ممنون میشم.

amin1softco
چهارشنبه 18 اسفند 1389, 10:54 صبح
دوست من خوب اول یک رشته از ورودی بخون بعد چکش کن اگه غیر عددی بود دوباره از کاربر بگیرش وگرنه تبدیلش کن به عدد و ادامه برنامه
http://www.cplusplus.com/reference/clibrary/cctype/isdigit/
http://www.daniweb.com/code/snippet217396.html