01/10/2018, 11:49
Lỗi khi input File trong C
Mình không đoc File bài code này dc ạ, mong mọi ngưoi giúp dùm
#include <stdio.h>
struct sv
{
int MSSV;
char HoTen[50];
double Toan, Ly, Hoa;
};
void Nhapsv(sv &s)
{
printf("Nhap mssv: ");
scanf_s("%d", &s.MSSV);
rewind(stdin);
printf("Nhap Ho ten: ");
gets_s(s.HoTen);
do
{
printf("Nhap diem lan luot Toan, Ly, Hoa");
scanf_s("%lf", &s.Toan);
scanf_s("%lf", &s.Ly);
scanf_s("%lf", &s.Hoa);
} while ((s.Toan > 10 || s.Toan < 0) || (s.Ly > 10 || s.Ly < 0) || (s.Hoa > 10 || s.Hoa < 0));
}
void Nhapmangsv(sv*a, int &n)
{
do
{
printf("Nhap n");
scanf_s("%d", &n);
} while (n < 1);
for (int i = 0; i < n; i++)
Nhapsv(a[i]);
}
void Xuatsv(sv s)
{
printf("%d %s %lf %lf %lf
", s.MSSV, s.HoTen, s.Toan, s.Ly, s.Hoa);
}
void Xuatmang(sv*a, int n)
{
printf("MSSV, HoTen, Toan, Ly, Hoa
");
for (int i = 0; i < n; i++)
Xuatsv(a[i]);
}
void LoadFilemang(sv*a, int & n)
{
n = 0;
FILE*f = fopen("Text.txt", "r");
if (f == NULL)
{
printf("Khong thuc hien duoc
");
return;
}
while (!feof(f))
{
if ((fscanf(f, "%d", &a[n].MSSV) && fgets(a[n].HoTen, 50, f) && fscanf(f, "%lf", &a[n].Toan) && fscanf(f, "%lf", &a[n].Ly) && fscanf(f, "%lf", &a[n].Hoa)))
n++;
}
fclose(f);
}
void main()
{
int n = 0, chon;
sv *a = new sv[100];
do
{
printf("0. THoat chuong trinh
");
printf("1. Nhap mang sv
");
printf("Ban muon chon chuc nang nao ");
scanf_s("%d", &chon);
switch (chon)
{
case 0:
return;
case 1:
{
int chon1;
printf("1. Nhap tu ban phim
");
printf("2. Loadfilemang
");
printf("Vui long chon");
scanf_s("%d", &chon1);
switch (chon1)
{
case 1:
{
Nhapmangsv(a, n);
break;
}
case 2:
LoadFilemang(a, n);
break;
default:
break;
}
}
default:
printf("K co chuc nang nay
");
break;
}
} while (chon != 0);
}
Nó không xuat dc gì ra màn hình hêt ạ

Bài liên quan
File Text:
Việc đọc file của bạn bị lỗi. Nếu string không đủ 50 kí tự thì sao?
Tốt nhất bạn nên đọc cả dòng dưới dạng string rồi xử lí để tách số và tên riêng ra.
Theo cấu trúc file của bạn thì mỗi dòng có số đầu tiên là chỉ số, còn 3 số cuối là điểm. Khi biết được cấu trúc từng dòng, cấu trúc file thì việc đọc dễ dàng hơn.
Cảm ơn bạn, nhưng mà mình vẫn k hiểu lắm. Nếu dc thì bạn giải thích rõ hơn chút giúp mình dc không, tại phần đọc file này kiến thức mình cũng khá yếu.
Bạn thấy không, xâu
Nguyen Van A
của bạn chưa đủ 50 kí tự, khi bạn đọc 50 kí tự thì xâu của bạn khi đọc sẽ lấy thêm cả phần điểm ở sau nữa.Tốt nhất là bạn chuyển sang đọc xâu, vì dòng của bạn đều có dạng
Cảm ơn bạn, để mình làm thử.