30/09/2018, 16:57
[HỎI]Cách viết Menu trong C++ không bị lỗi vòng lặp vô hạn?
Em có làm 1 Menu như sau:
//Biến dùng để lựa chọn Menu
int c, c1;
string tt="y";
//----------------- MENU -------------------
do
{
do
{
cout << "
1. Nhap danh sach chiec xe va danh sach cac chuyen di";
cout << "
2. Tinh thanh tien moi chuyen di";
cout << "
0.Exit";
cout << "
Moi ban nhap lua chon: ";
cin >> c;
//Báo lỗi khi nhập sai
if (c != 0 && c != 1 && c != 2)
cout << "Ban da nhap sai. Moi ban nhap lai!!!";
} while (c != 0 && c != 1 && c != 2);
switch (c)
{
//1. Nhap danh sach chiec xe va danh sach cac chuyen di
case 1:
{
taxi.XuatTinhTienCd();
break;
}//Kết thúc câu 1
}
Nếu e cố tình nhập vào chữ thì nó sẽ chạy một vòng lặp vô hạn.
Vậy cho e hỏi có cách nào khắc phục vấn đề này không ạ?
Em cám ơn nhiều
Bài liên quan
Không đc bạn. Cái này theo mình nghĩ là vì mình khai báo biến c và c1 là int mà mình lại cố tình sử dụng kiểu ký tự nên nó lỗi .
A @ltd có thể giúp e phần này k ạ?
Bạn không post toàn bộ code nên hơi khó test
Mình sửa code một chút thì thấy chạy bình thường, không bị lặp vô hạn
Nếu không được bạn có thể thử 2 link này xem
stackoverflow.com
Character counting program infinite loop
https://www.google.com/search?q=cout+infinitive+loop+C%2B%2B&oq=cout+infinitive+loop+C%2B%2B&gs_l=serp.3..30i10.33025.34108.0.34363.4.4.0.0.0.0.217.407.0j1j1.2.0.msedr...0...1c.1.64.serp..2.2.405.rKI8a4jSx_I
cái này bạn thử đặt
fflush(stdin);
trướccin>>c;
thử xem.mà hình như đoạn code trên thiếu 1 cái đóng ngoặc này:
}
Đây là toàn bộ đoạn code của mình. Mình đã sửa theo mọi người chỉ nhưng vẫn không đc
Quái nhể, mình test thử thấy bình thường mà nhỉ
lúc mình test mình disable hết mấy dòng có
taxi
, bạn kiểm tra lại mấy dòng cótaxi
xem nháBạn nhập vào chữ thì nó hiện ra câu thông báo hay s???
Nó chạy như là mình nhập 0, nên nếu trong case 0: mình thêm dòng in “some text” thì nó sẽ in “some text” khi nhập kí tự
Bạn thử code này nha