Tại sao hàm xuất nó chạy bỏ qua phần nhập đáp án vậy?

#include<iostream>
#include<fstream>
#include<string.h>
#include<vector>
using namespace std;
struct bien{
	string ch,a,b,c,d,da; 
};
int n;
vector <bien> ds;
// doc du lieu tu file
void doc(fstream &f)
{

	f>>n;
	string temp;
	getline(f,temp);
	ds.resize(n);
	for(int i=0;i<n;i++)
	{
		getline(f,ds[i].ch);
		getline(f,ds[i].a);
		getline(f,ds[i].b);
		getline(f,ds[i].c); 
		getline(f,ds[i].d);
		getline(f,ds[i].da);
	}	
}
// xuat cau hoi va chon cau tra loi
void xuat()
{	
	string k;
	ds.resize(n);
	for(int i=0;i<n;i++)
	{
		cout<<ds[i].ch<<endl;
		cout<<ds[i].a<<endl;
		cout<<ds[i].b<<endl;
		cout<<ds[i].c<<endl;
		cout<<ds[i].d<<endl;
		cout<<"nhap dan an: ";
		getline(cin,k);
		cout<<endl;
		if(ds[i].da==k)
		{
			cout<<"dung"<<endl;
		}	
		else cout<<"chon sai"<<endl;
	}
}
void menu()
{
	 cout<<"chon bo de so 1:"<<endl;
	 cout<<"chon bo de so 2"<<endl;
}
void chon()
{	
	menu();
	fstream f;
	vector<bien> ds;
	int b ;
	cout<<"----------------"<<"chon cac muc trong menu phia tren"<<"-----------"<<endl;
	cout<<"lua chon so:";
	cin>>b;
	switch(b)
	{			
		case 1: 
				system("cls");
				f.open("cauhoi1.txt",ios::in);
				doc(f);
				xuat();
				chon();
				break;
		case 2:system("cls");
				f.open("cauhoi2.txt",ios::in);
				doc(f);
				xuat();
				chon();
			break;
		
		case 3:
					cout<<"ban nhap ko hop le"<<endl<<"--------"<<"moi ban nhap lai"<<"--------"<<endl;	
					break;
						
					
	}	
}
int main()
{	

	chon();
}

Terminal

van linh la ai?
a.gd
d.cn
c.gv
d.hs
nhap dan an:
chon sai
tuan anh la ai?
a.gd
b.cn
c.gv
d.hs
nhap dan ap:

câu đầu tiên nó ko cho nhập đán án, cái sau lại cho nhập

merged to the #1 post by noname00

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