30/09/2018, 17:40
Cách ngừng vòng lập vĩnh viễn trong C/C++?
Có cách nào để khi chương trình của mình gặp phải vòng lặp vĩnh viễn (do nhập dữ liệu sai) thì mình dừng vòng lặp đó lại để in ra thông báo không ạ?
Bài liên quan
bạn chỉ có thể kiểm tra dữ liệu đó trước khi đưa vào vòng lặp hoặc là trong khi lặp thôi, chứ khi vòng lặp đã chạy rồi nếu không có điều kiên dừng nào đó thì nó sẽ chạy hoài, khi đó chỉ còn cách thoát ra vô lại thôi
Không thể dừng vòng lặp vĩnh viễn.
đúng rồi. bạn đặt điều kiện cho giá trị nhập vào nếu không đúng thì nó sẻ nhập lại or kết thúc ct luôn chả hạn.
cảm ơn mọi người
Có 2 cách…
Mình thấy cách này là cổ điển và dễ áp dụng nhất
Em thấy ctrl + S cũng tốt, dừng lại ngăm chơi
Vẫn có cách dừng vòng lập vĩnh viễn thông đấy. Cho nó chạy trong thread rồi abort thread đó.
có, kiểm tra
cin.fail()
haycin.good()
sau khi nhập ví dụcin >> x
, trong đóx
làint
chẳng hạn. Nếu fail thì clear() và ignore() ký tự thừa. Có thể xài gộp khi nhập luôn: cin >> x trả về cin, nếu cin.good() thì cin >> x trả về cin bình thường, hiểu là true, còn ko thì bị set failbit hay badbit gì đó, coi như là falsechỗ ignore() thì có thể viết là
std::cin.ignore(100, '\n');
cũng được rồi.bạn thử tìm hiểu try{} catch(){} nhé! Mình nghĩ là OK!
để nó catch được thì bạn phải quăng exception ra… vòng lặp vô tận sao nó biết đường để quăng ra nhỉ?