首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言文件操作有关问题

2012-04-17 
c语言文件操作问题c语言文件操作总是出错,不是显示一堆乱码,就是没有效果,输出的还是初始化的值。弄得我很

c语言文件操作问题
c语言文件操作总是出错,不是显示一堆乱码,就是没有效果,输出的还是初始化的值。弄得我很苦逼呀!各位大虾救救苦难中的孩子吧。


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define STUDENT_NUM 1 //学生人数
#define COMMAND_LEN 6 //命令字符数

typedef struct studentMessage
{
unsigned int stuCount;//学号
char name[10]; //姓名
char classGrade[3]; //班级
long long phoneNum; //手机号码
char address[10]; //住址

//成绩
int Marktotal;
int MarkCh; //语文
int MarkMath; //数学
int MarkEn; //英语
}stuM;

int file(void)
{
stuM student[STUDENT_NUM];
int i,j;
FILE * fp = fopen("E:\\c_test.txt","r");//读文件中的字符
for(i = 0;i < STUDENT_NUM;i++)
{
fscanf(fp,"%u %s %s %lld %s %d %d %d %d\n ",&student[i].stuCount,&student[i].name,&student

[i].classGrade,&student[i].phoneNum,&student[i].address,&student[i].Marktotal,&student[i].MarkCh,&student

[i].MarkMath,&student[i].MarkEn);//用定义的数组类型接收读取到的字符
if(feof(fp))// 代表着字符串的结束
break;
}
printf("*%u*",&student[0].stuCount);
for(j = 0;j < STUDENT_NUM;j++)
{
printf("%3d ",j + 1);
printf("%u %s %s %lld %s %d %d %d %d\n ",&student[i].stuCount,&student[i].name,&student

[i].classGrade,&student[i].phoneNum,&student[i].address,&student[i].Marktotal,&student[i].MarkCh,&student

[i].MarkMath,&student[i].MarkEn);
}

getch();
return 0;
}
int main(void)
{
file();

getch();
return 0;
}

[解决办法]
不知道E:\\c_test.txt文件里的数据,所以不清楚,你读取文件的格式是否有错;
下面的代码的里的i应该该为j

C/C++ code
for(j = 0;j < STUDENT_NUM;j++){printf("%3d ",j + 1);printf("%u %s %s %lld %s %d %d %d %d\n ",&student[i].stuCount,&student[i].name,&student[i].classGrade,&student[i].phoneNum,&student[i].address,&student[i].Marktotal,&student[i].MarkCh,&student[i].MarkMath,&student[i].MarkEn);
[解决办法]
fscanf(fp,"%u %s %s %lld %s %d %d %d %d\n ",&stu....\
去掉换行符试试
[解决办法]
因为那两个你都是取地址了嘛。

热点排行