30/09/2018, 16:35
Hỏi về lệnh getline(cin,string) C++
Mình có soạn 1 đoạn code đơn giản để demo câu hỏi :
class NV{
protected:
string HoTen;
int NamSinh;
long Luong;
public:
void Nhap(){
cout << "Ho ten Nhan Vien : "; getline(cin, HoTen);
cout << "Nam sinh : "; cin >> NamSinh; };};
class NVVP :public NV{
public:
void Nhap() {
NV::Nhap(); };
};
class NVSX :public NV{
public:
void Nhap() {
NV::Nhap();};
};
int _tmain(int argc, _TCHAR* argv[]){
NVVP a;
NVSX b;
a.Nhap();
b.Nhap();
system("pause");
return 0;}
Lúc run chương trình tới đối tượng b gọi hàm Nhap(),thì mặc định HoTen="",tức là câu lệnh getline(cin,string) không được gọi,vậy mình có thể sửa như thế nào để hàm Nhap() có thể dừng lại đọc các ký tự nhập vào từ bàn phím ?
Bài liên quan
Hàm nhập sử dụng hàm ignore, để bỏ qua ký tự trên dòng vào (std::cin)
vẫn đây -_-
đổi thành fflush(stdin) vs gets(char*s) thử xem
sử dụng linh hoạt ignore là đủ!
Edited,thêm cin.ignore(1); vào cả 3 hàm Nhap() mới được.Thank all