Em có đoạn code sau:
#include<iostream>
#include<string>
struct SV {
std::string Ten, ID;
int ngay, thang, nam;
};
void main() {
SV sv[2];
int n = 2;
for (int i = 0; i < n; i++) {
std::cout << "SV[" << i + 1 << "]:";
std::cout << " Nhap ho ten: ";
std::cin.ignore();
std::getline(std::cin, sv[i].Ten);
std::cout << " Nhap ID: "; std::cin >> sv[i].ID;
std::cout << " Nhap ngay sinh(): "; std::cin >> sv[i].ngay >> sv[i].thang >> sv[i].nam;
}
for (int i = 0; i < n; i++)
std::cout << sv[i].Ten<<" ";
system("pause");
}
Anh chị cho em hỏi là tại sao khi in ra cái Ten
nó lại bị mất chữ đầu, có phải là do std::cin.ignore()
?
Nhưng mà nếu không dùng std::cin.ignore()
thì tới vòng lặp i=1
nó sẽ bỏ qua bước nhập tên, qua bước nhập ID luôn. Anh chị nào giải thích giúp em với ạ.