Thay vì bạn dùng hàm getche thì bạn dùng hàm getch để khi nhập thì ký tự ko được in ra, sau đó bạn kiểm tra điều kiện nếu thỏa thì dùng printf để in ra.
mình làm một bài dev C++
"bạn có muốn chơi tiếp không(Y/N)?"
nếu trả lời là Y=> tiếp tục chơi
nếu trả lời là N=> dừng chơi
nếu nhập các kí tự khác thì tự xóa kí tự đó làm sao để người chơi chỉ nhập Y hoặc N
nhưng mà không xóa được kí tự trước đó
ai có thể giúp mình không?
thanks trước nha
Thay vì bạn dùng hàm getche thì bạn dùng hàm getch để khi nhập thì ký tự ko được in ra, sau đó bạn kiểm tra điều kiện nếu thỏa thì dùng printf để in ra.
Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.
Làm như bạn muốn chỉ tổ dài code thêm thui.
Demo
Have fun!Code:do { ....... cout<< "bạn có muốn chơi tiếp không(Y/N)?"; do { ch=getch(); } while (ch!='Y' && ch!='N'); // thêm cả y và n vào nữa cũng đc if (ch=='N') {cout<<'N';break;} else cout<<'Y'; } while (1);
Here we go :
C++ Code:
#include <iostream> #include <string> #include <windows.h> #include <conio.h> using std::string; enum states { STOP, CONTINUE, RETYPE }; void gotoxy( int x, int y ) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord ); } states get_input( string& input ) { input = ""; while( 1 ) { char ch =_getche(); if( ch == 'n' || ch == 'N' ) return STOP; if( ch == 'y' || ch == 'Y' ) return CONTINUE; // Done reading else { gotoxy( 0, 1 ); input += ch; return RETYPE; } } } int main() { std::string s; while( get_input( s ) == RETYPE ); return 0; }
Đúng là phong cách của bác R_R, mỗi lần code là gà mờ như em thấy chóng cả mặt
Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.