có cách nào ko dùng getch() mà ko để lại khoảng trắng ở output như hình không ạ. Em muốn nhập vào 1 mảng cho đến khi nào ấn ESC thì break ra. Giúp em với
Bắt kí tự bàn phím
- Nhập trên 1 dòng. Sau đó tách số.
- Nhập đến kí gặp -1 (hoặc < 0) thì dừng. Chỉ áp dụng khi yêu cầu mảng luôn dương.
- Dùng tín hiệu EOF (phím Ctrl + Z) để kết thúc.
1 Like
dùng EOF cũng chả khác gì mấy anh. Em muốn nó hiển thị là
1
2
3
4
chứ dùng EOF thì vẫn cần đến nhập vào biến esc là ctrl z , thì vẫn có khoảng trắng ở giữa thôi ak
Do bạn xài getch nên đành phải chấp nhận 1 cái enter thôi
int a;
do {
cout << "a: ";
cin >> a;
cin.ignore(256, '\n');
cout << a << "\n";
cout << "Press any key to continue. Esc to quit!" << "\n";
} while(getch() != 27);
return 0;
Còn nếu muốn chày cối, thì xài getch, get từng ký tự xong append vô buffer. Khi gặp ký tự xuống hàng thì convert buffer sang số + cho vô mảng. Gặp esc thì thoát.
Mã giã
int arr[1024];
char buf[1024];
int i = 0;
char c;
while(c = getch(), c != 27) {
if (c == 10) {
arr.append(convertToInt(buf));
buf = [];
i = 0;
continue;
}
buf[i++] = c;
}
3 Likes
anh ơi cho em hỏi cái này với.
Em muốn mình cứ nhập i cho đến khi nào ấn ESC thì out ra khỏi While thì có cách nào mà ko cần dùng đa luồng ko ạ

Bạn muốn làm gì với cái i trên? Game hay sao
3 Likes
dạ cái đấy là nhà trường bài tập bắt phải như thế, em cx chả hiểu kiểu gì nữa
Bạn đưa đề lên cho mọi người coi rõ nào
4 Likes

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?