نمایش نتایج 1 تا 3 از 3

نام تاپیک: سوال

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #3
    کاربر تازه وارد آواتار sd702004
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    مشهد
    پست
    90

    نقل قول: سوال

    enum این اوپراتور رو نداره و این ارور بهمین خاطره. در حالت کلی از تعریف operator میشه استفاده کرد (مثل کاری که دوست مون انجام دادن) اما اگر قراره از کاربر مقادیر متنی نظیر NO و YES گرفته بشه روش بهتر استفاده از map هستش. مثال:
    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;

    int main(){
    map<string, bool> answer_list = { {"NO",false}, {"FALSE",false}, {"TRUE",true}, {"YES", true} };
    string answer;
    cin >> answer;
    if (answer_list.at(answer)) cout << "you said OK";
    }

    البته در این کد چنان چه جوابی که از کاربر دریافت میشه غیر از اون چهار موردی باشه که تعیین کردیم باعث میشه که اجرای برنامه با ارور روبرو بشه و بنابراین در صورت نیاز میشه این کار رو انجام داد:
    #include <iostream>
    #include <map>
    #include <string>
    using namespace std;

    int main(){
    map<string, bool> answer_list = { {"NO",false}, {"FALSE",false}, {"TRUE",true}, {"YES", true} };
    string answer;
    cin >> answer;
    try{
    if (answer_list.at(answer)) cout << "you said OK";
    } catch (out_of_range){
    cout << "invalid answer";
    return 1;
    }
    }

    حتی میتونین جواب دریافتی از کاربر رو ابتدا به حروف بزرگ تبدیل کنید تا کوچک و بزرگ بودن حروف عملکرد متفاوتی نداشته باشه
    آخرین ویرایش به وسیله sd702004 : چهارشنبه 06 فروردین 1399 در 12:11 عصر

تاپیک های مشابه

  1. حرفه ای: دانلود سورس تابلوی تبلیغاتی Led و سورس office 2007
    نوشته شده توسط farboodj1375 در بخش برنامه نویسی در 6 VB
    پاسخ: 8
    آخرین پست: شنبه 28 خرداد 1390, 11:12 صبح
  2. پاسخ: 9
    آخرین پست: یک شنبه 01 خرداد 1390, 19:11 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •