Chương trình tôi đang xây dựng chạy trong một vòng lặp vô hạn trong khi có trường hợp chuyển đổi trong đó. Tôi muốn chèn một vòng lặp while trong mỗi trường hợp và thực hiện vài thao tác trong vòng lặp, nhưng vòng lặp nên thoát ngay sau khi một đầu vào bàn phím được đưa ra. Vì vậy, sau khi lấy đầu vào từ bàn phím một trường hợp khác được chạy với vòng lặp lồng nhau trong đó, và quá trình tiếp tục.Làm thế nào để phá vỡ một vòng lặp while trong C trên Linux bằng cách lấy bất kỳ giá trị từ bàn phím?
Cấu trúc là:
while()//infinite loop
{
............... //operations
............... //operations
switch()
{
case 1:
............... //operations
............... //operations
while()//infinite loop
{
..............
..............
exit if there is any input from keyboard
}
break;
case 2:
............... //operations
............... //operations
while()//infinite loop
{
..............
..............
exit if there is any input from keyboard
}
break;
case n:
............... //operations
............... //operations
while()//infinite loop
{
..............
..............
exit if there is any input from keyboard
}
break;
}
}
Có cách nào để làm điều đó ???
Bạn đang hỏi cách nhận đầu vào bàn phím hoặc cách ngắt vòng lặp lồng nhau? – ugoren
Bạn có hỏi làm cách nào để nhập dữ liệu thô, vì vậy việc chờ đợi kết thúc ngay khi _any_ tạo mã char hoặc mã điều khiển được nhấn, thay vì bị ép nhấn enter (sau khi nhập một số văn bản tùy chọn)? – blubberdiblub
Bất kể giải pháp cho vấn đề bàn phím, chức năng này nên được cấu trúc lại. – unwind