BUFFVODAKA / include-pa-sah-thai

1 stars 0 forks source link

มีเรื่องจะมาบอกเล่าครับ #28

Closed YotsawatSuki closed 1 year ago

YotsawatSuki commented 1 year ago

ตอนที่ผมเขียนโค้ดเกี่ยวกับ cin ผมได้พยายามที่จะทำให้เวลาเรา input ค่าเข้าไปมันได้แค่ int เท่านั้น เพื่อป้องกันกรณีผู้ใช้ input ค่าตัวแปรอื่นมา

สกรีนช็อต 2023-03-16 215140

อย่างกรณีนี้ผมได้ลองพิมพ์ตัวอักษรที่ไม่ใช้ตัวเลข input ลงในตัวแปร s ที่เป็น int ปรากฎว่ามันแปลงเป็น 0 ทันทีเลย

YotsawatSuki commented 1 year ago

ถ้าหากอยากจะแก้ปัญหานี้ให้ใช้โค้ด cin.fail() ในการเช็คครับ

สกรีนช็อต 2023-03-16 215743

จะเห็นได้ว่าเมื่อเพิ่มตัวของ

if (cin.fail()) 
    { 
        cout << "data entered is not of int type"; 
    }
    else
    {
        cout << s;
    }

จะสามารถตรวจได้ว่าตัวที่เรา input เขาไปถูกต้องหรือไม่นั่นเองครับ