Chủ đề: thắc mắc về struct
-
06-05-2014, 12:27 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
thắc mắc về struct
mình có bài tập về file là nhập vào số hs và xóa người có số điểm thấp nhất nhưng mình gặp rắc rối ở chỗ là khi mình khai báo kiểu dữ liệu điểm là float trong struct thì lúc in ra xem thì bị lỗi kiểu dữ liệu mình đã thử lại kiểu int và vẫn ko đc mọi người có thể giúp đỡ mình đc không
đây là bài mình đang làm dở để kiểm tra và thấy bị lỗi rất mong mọi người giúp
#include<stdio.h>
#include<conio.h>
FILE *f;
int n,i;
struct thuchanh {
char ten[50];
char so[25];
float diem[25];
}dem[50];
thuchanh test=dem[50];
void nhapdata();
void in();
void xoa();
void thoat();
void nhapdata(){
f=fopen("e://thuchanh.txt","wb");
printf("nhap vao so luong nguoi :
");
scanf("%d",&n);
for(i=0;i<n;i++){
fflush(stdin);
printf("So bao danh %d : ",i+1);
gets(dem[i].so);
fflush(stdin);
printf("Ho & Ten : ");
gets(dem[i].ten);
fflush(stdin);
printf("Diem : ");
scanf("%f",&dem[i].diem);
fflush(stdin);
}
for(i=0;i<n;i++){
fwrite(dem[i].so,sizeof (struct thuchanh),n,f);
fwrite(dem[i].ten,sizeof (struct thuchanh),n,f);
fwrite(dem[i].diem,sizeof (struct thuchanh),n,f);
}
fflush(f);
fclose(f);
}
void in(){
f=fopen("e://thuchanh.txt","rb");
if(n==0)
perror("loi khong mo dc tep
");
for(i=0;i<n;i++)
fread(dem[i].so,sizeof(thuchanh),n,f);
fread(dem[i].ten,sizeof(thuchanh),n,f);
fread(dem[i].diem,sizeof(float),n,f);
for(i=0;i<n;i++){
printf("So bao danh %d %s:",i+1,dem[i].so);
printf("Ho & Ten nguoi %d %s:",i+1,dem[i].ten);
//printf("Diem cua nguoi thu %d %6.2f: ",i+1,dem[i].diem);
printf("%6.2f",dem[i].diem);
}
}
void xoa(){
}
void thoat(){
}
int main(){
int chon;
do{
printf(" 1.Nhap du lieu
");
printf(" 2.Xem du lieu
");
printf(" 3.Xoa
");
printf(" 4.Thoat
");
printf("chon 1 so
");
scanf("%d",&chon);
switch (chon) {
case 1: nhapdata();break;
case 2: in();break;
case 3: xoa();break;
case 4:{thoat(); return 0;}
}
}
while(1);
}
View more random threads:
- Hỏi về giá trị của biến ngay lúc mới khai báo
- Lấy giờ phút giây trong C
- Lỗi khi xử lý mảng 2 chiều đưa vào từ C#
- số giả ngẫu nhiên
- Mình chưa hiểu về FILE có bài nay mong Giúp đỡ
- Thắc mắc sự khác biệt giữa char * và char[]
- Sửa lỗi bài tập xóa bớt các phần tử giống nhau sao cho mảng chỉ có các phần tử phân biệt
- hàm atoi có tác dụng gì?
- Số nguyên hệ 10
- giup giai bai tap c
-
06-05-2014, 12:36 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Turbo hay Borland phải ko [IMG]images/smilies/smile.png[/IMG]
-
06-05-2014, 12:44 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mình làm trên cfree sao vậy bạn lỗi thế là sao vậy
-
06-05-2014, 01:07 PM #4
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
1. À, chỗ bạn ghi vào file thì bạn phải ghi đúng size của cái mà bạn định ghi.
Đọc file tương tự.
2. Khi bạn đọc file thì bạn phải đọc luôn n từ file mới đúng chứ.
(Cho dù bạn để cho ng` dùng nhập thì bạn vẫn phải ghi n vào file để dễ kiểm soát)
-
06-05-2014, 01:13 PM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi prog10
mình còn viết lại 1 đoạn khác nhỏ hơn để test nhưng mà k đc
#include<stdio.h>
#include<string.h>
int main(){
struct test{
int a[50];
char c[50];
}dem[50];
int x,y,i;
printf("nhap vao so luong nguoi : ");
scanf("%d",&x);
for(i=0;i<x;i++){
fflush(stdin);
printf("nguoi thu %d ",i+1);
gets(dem[i].c);
fflush(stdin);
printf("diem so nguoi thu %d ",i+1);
scanf("%d%",&dem[i].a);
}
printf("da nhap
:");
for(i=0;i<x;i++){
fflush(stdin);
printf("ten nguoi %s :",dem[i].c);
printf("diem so %d%",dem[i].a);
}
}
-
06-05-2014, 02:02 PM #6
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
float diem[25]; -> float diem; thôi nhé.
Vì string là 1 khái niệm* và đc biểu diễn bằng 1 mảng các char, nên phải ghi char[50] hay đại loại vậy.
Lưu ý char[50] thì 49 char là max, vì còn char kết thúc nữa.
Có vẻ như bạn ko xem kĩ phần đọc file nhị phân rồi.
* C++ thì có std::string, nhưng bản chất string vẫn là khái niệm.
-
07-05-2014, 07:34 PM #7
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi prog10
- - - Nội dung đã được cập nhật ngày 07-05-2014 lúc 12:34 AM - - -
mình tìm ra lỗi rồi khia báo struct {int a[50]} là sai và bị lỗi chỉ có int a thôi [IMG]images/smilies/biggrin.png[/IMG]
xã hội vững mạnh, nhu cầu mặc đẹp của con người ngày càng cao. ngành công nghiệp thời trang cũng đang vững mạnh chóng vánh. những nhà máy gia công hàng may mặc chẳng thể đóng góp lặng thầm vào sự...
Tìm xưởng may gia công tại TP Hồ...