#include<stdio.h>struct student{char name[10];int num;float math;float chinese;float english;float average;};main(){struct student stu[5];int i;FILE *fp;if((fp = fopen("E:\\vc++6.0\\MSDev98\\MyProjects\\文件3\\stud.txt","r"))==NULL){printf("the file opening error!!");}else{for(i = 0;i < 5;i++){fscanf(fp,"%s,%d,%f,%f,%f,%f",stu[i].name,&stu[i].num,&stu[i].chinese,&stu[i].english,&stu[i].math,&stu[i].average);}fclose(fp);for(i = 0;i < 5;i++){printf("%s\n",stu[i].name);}}}tom1,1001,94.00,95.00,96.00,95.00tom2,1002,95.00,92.00,93.00,93.33tom3,1003,95.00,96.00,94.00,95.00tom4,1004,95.00,92.00,94.00,93.67tom5,1005,94.00,91.00,98.00,94.33
1 回答

蠱毒傳說
TA貢獻1895條經(jīng)驗 獲得超3個贊
fscanf
(fp,
"%s,%d,%f,%f,%f,%f"
,stu[i].name,&stu[i].num,&stu[i].chinese,&stu[i].english,&stu[i].math,&stu[i].average);讀取時候都要用%s,不然你讀取的就有問題,
如果想拿字符串轉(zhuǎn)變成
int
可以使用
atoi
例如:
char
num=
"456"
;
int
a=
atoi
(num)
a就是456了
atof
(將字符串轉(zhuǎn)換成浮點型數(shù))
atoi
(將字符串轉(zhuǎn)換成整型數(shù))
atol
(將字符串轉(zhuǎn)換成長整型數(shù))
strtod
(將字符串轉(zhuǎn)換成浮點數(shù))
改為:后面的變量自己,轉(zhuǎn)換之后重新給結(jié)構(gòu)體賦值
fscanf
(fp,
"%s,%s,%s,%s,%s,%s\n"
,stu[i].name,&stu[i].num,&stu[i].chinese,&stu[i].english,&stu[i].math,&stu[i].average);
- 1 回答
- 0 關(guān)注
- 76 瀏覽
添加回答
舉報
0/150
提交
取消