Các anh ơi vì sao ở dòng 53 nếu em thêm \n
thì kết quả in ra đúng còn nếu bỏ \n
đi thì nó sẽ ra mấy cái kí tự lạ vậy ạ???(Code C)
Có \n
Không có
\n
code đây ạ(Do em không lưu code cũ. Code này bị sửa để dễ nhìn hơn ạ)
chỗ em cần hỏi em kèm cmt sau ấy ạ
#include <stdio.h>
#include<stdlib.h>
typedef struct{
int van;
int toan;
int anh;
float tbmon;
}score;
typedef struct{
int id;
char *name;
int age;
char *sex;
score diem;
}info;
void nhap_info(info *sv ,const int i , FILE *fin){
sv[i].name = malloc(20 * sizeof(char));
sv[i].sex = malloc(20 * sizeof(char));
printf("Nhap ten , tuoi , gioi tinh , diem van, toan, anh:\n");
scanf("%s %d %s %d %d %d",sv[i].name , &sv[i].age ,sv[i].sex ,&sv[i].diem.van,&sv[i].diem.toan,&sv[i].diem.anh);
fflush(stdin);
sv[i].diem.tbmon = (float)(sv[i].diem.anh + sv[i].diem.van + sv[0].diem.toan) / 3;
fprintf(fin,"%10s %5d %10s %5d %5d %5d %f\n",sv[i].name , sv[i].age ,sv[i].sex ,sv[i].diem.van,sv[i].diem.toan,sv[i].diem.anh , sv[i].diem.tbmon);
free(sv[i].name );
free(sv[i].sex );
}
void xuat_info(info *sv , const int i){
printf("%10s %5d %10s %5d %5d %5d %.2f\n",sv[i].name , sv[i].age ,sv[i].sex ,sv[i].diem.van,sv[i].diem.toan,sv[i].diem.anh , sv[i].diem.tbmon);
free(sv[i].name );
free(sv[i].sex );
}
void nhap_them_sv(info *sv){
FILE *fin = fopen("C:\\Users\\hp\\Desktop\\Cprograming\\baitap6\\infosv.txt", "a");
while(1){
nhap_info(sv , 0 , fin);
printf("\nPress 0.Exit ? ");
int luachon;
scanf("%d", &luachon);
fflush(stdin);
if(luachon == 0){
break;
}
}
fclose(fin);
}
void hien_thi_ds_sv(info *sv){
int i=0;
FILE *fout = fopen("C:\\Users\\hp\\Desktop\\Cprograming\\baitap6\\infosv.txt", "r");
while(!feof(fout)){
sv[i].name = malloc(20);
sv[i].sex = malloc(20);
if(!feof(fout)){
fscanf(fout,"%s %d %s %d %d %d %f\n",sv[i].name , &sv[i].age ,sv[i].sex ,&sv[i].diem.van,&sv[i].diem.toan,&sv[i].diem.anh , &sv[i].diem.tbmon);//Dấu \n ở dòng này ạ.
xuat_info(sv , i);
}
}
fclose(fout);
}
int main(){
info sv[100];
int i = 0;
//nhap
nhap_them_sv(sv);
//xuat
hien_thi_ds_sv(sv);
return 0;
}