Em viết chương trình nhâp vào năm và sự kiện sau đó yêu cầu người dùng nhập năm vào để in ra sự kiện nhưng đang bị lỗi ạ, có thể cho em biết em đang bị lỗi ở đâu và cách sửa được không ạ ? em cảm ơn. Dưới là hình ảnh lỗi và code của em ạ…
#include <stdio.h>
void nhapdulieu()
{
int nam;
char sukien[100];
int i=0;
int nChoice;
FILE *fp = fopen("sukienlichsu.txt","wb");
if(fp!=NULL)
{
printf("Chu y: Nhap nam la 0 de dung nhap\n");
while(nam>=0)
{
printf("Nhap nam: ");
fflush(stdin);
scanf("%d",&nam);
fflush(stdin);
if(nam==0) break;
printf("Nhap su kien (mo ta ngan gon): ");
fflush(stdin);
gets(sukien);
fseek(fp,nam*sizeof(int),SEEK_SET);
fprintf(fp,"%d %s",nam,sukien);
}
fclose(fp);
}
}
void timkiemdulieu()
{
int nChoice,i,n;
char sukien[100];
printf("1.Tim kiem du lieu\n2.Thoat chuong trinh\n");
scanf("%d",&nChoice);
while(nChoice!=2)
{
FILE *f = fopen("sukienlichsu.txt","rb");
printf("Nhap nam can tim: ");
scanf("%d",&n);
fflush(stdin);
fseek(f,n*sizeof(int),SEEK_SET);
fread(sukien,sizeof(sukien),1,f);
printf("%s\n",sukien);
printf("1.Tim kiem du lieu\n2.Thoat chuong trinh\n");
scanf("%d",&nChoice);
fflush(stdin);
fclose(f);
}
}
int main()
{
nhapdulieu();
timkiemdulieu();
return 0;
}
Output
1. Tim kiem du lieu
2. Thoat chuong trinh
1
Nhap nam can tim: 1945
1945 Nan doi
1. Tim kiem du lieu
2. Thoat chuong trinh
1
Nhap nam can tim: 1979
1979 Chien tranh bien gioi
1. Tim kiem du lieu
2. Thoat chuong trinh
1
Nhap nam can tim: 2000
2000 Ra doi
ranh bien gioi
1. Tim kiem du lieu
2. Thoat chuong trinh