2011-07-22 34 views
5

Tôi đang sử dụng scanf() để đọc đầu vào của người dùng trên thiết bị đầu cuối trong ứng dụng bảng điều khiển. scanf chờ cho đến khi người dùng nhấn phím trả về để đọc. Có cách nào để đọc đầu vào của người dùng trên mỗi lần nhấn phím không?Đọc đầu vào từ bảng điều khiển trong OSX

Trả lời

6

Cách thông thường là sử dụng chức năng getch từ (cổng Mac) ncurses.

Lưu ý rằng trong khi getchar đọc một ký tự đơn, nó vẫn thường đọc đệm, vì vậy bạn cần nhấn 'return'/'enter' trước khi nó quay trở lại.

1
char c = getchar(); 

Cần thực hiện thủ thuật.

+3

thực sự, tốt hơn nên đọc nó là 'int' – MByD

+2

tại sao? anh ta muốn một 'char' - và' int' mất nhiều bộ nhớ hơn –

+3

với int bạn có thể kiểm tra các giá trị ngoài băng, cũng như khi được khai báo là biến cục bộ, nó có thể sẽ giống nhau. – MByD

2

getch() trả về luồng ký tự từ stdin khi được nhập.

+0

Điều đó sẽ rất bất thường - nó không phải là hành vi mặc định. –

+0

-1 getchar cũng đợi cho đến khi người dùng nhấn phím trả về – user411313

Các vấn đề liên quan