عدم استفاده از gets() در C++ سر ریزی بافر و مشکلات امنیتی
خدا چه میگی مهرگان سوالت مگه ای نیست که چجو از gets استفاده بکنی ؟
gets با cin.get خو فرق مکنه . gets اصلا دیگه cin نمیخواد تو الان سوالت چیه ؟ خو هر چی که میخوای با gets بگیر کد:
#include <stdio.h> البته وقتی نیم اسپیس استاندارد رو یوز میکنی فکر کنم اینو نیاز نداره دیگه Function is intrinsically unsafe and should not be used نقل قول:
کد:
char str1[10]; راه درستش کد:
char str1[10]; |
آقا ای کده نگا بکو شما
مثلا میگم چند نفر دانشآموز مخوای وارد بکنی؟ طرف میگه n نفر امجا (!) میگم خو اسمشه وارد بکو آقا اسمشه نمیگیره:102: int n; |
استفاده از stringstream در c++ کار با رشته ها تفاوت با cin
متوجه شدم چی میگی مساله اینتر زدن هست . اینتر رو هم میریزه توی استرینگ ! .
بنابراین یه راهش اینه که اون یه دونه اینتر رو دور بریزی مثل مثالی که خودت زدی والبته راه چیپی نیست ها خود c++ اینو داره cin.ignore() بنابراین کاسه داغتر از اش نشو :d یا اینکه : کد:
برای اینکه متوجه بشی این استرینگ استریم چیکار میکنه اینو به کار ببر یه دقیقه : کد:
12d خروجی که مشاهده میکنی اینه : 12d 12 یعنی 12d رو که رشته هست میریزه توی mystr بعد قسمت int از mystr رو میریزه توی price اوکی ؟ |
اکنون ساعت 09:18 PM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد. |
Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)