hustwb #include#includ
#include
#include
#include
typedef struct student
{
int num;
float name[10];
int age;
float sex[2];
int grade;
int score;
struct student *next;
} STUDENT;
STUDENT *readfile()
{
FILE *fg;
STUDENT *head;
STUDENT *last;
STUDENT *p;
head=(STUDENT*)malloc(LED);
head->next=NULL;
last=head;
fg=fopen("C:\Users\hust\Desktop\新建文件夹\student.dat","rb");
if(fg==NULL);
{
printf("找不到数据文件");
return NULL;
}
while(!feof(fg))
{
p=(STUDENT*)malloc(LED);
if(fread(p,sizeof(STUDENT),1,fg)==1)
{
p->next=NULL;
last->next=p;
last=p;
}
}
fclose(fg);
return head;
}
void main()
{
FILE *fg;
STUDENT s;
if ((fg=fopen("student.dat","wb"))==NULL)
{
printf("出现错误");
}
do
{
printf("请输入学号: ");
scanf("%d",&s.num);
if (s.num!=-1)
{
printf("请输入姓名: ");
scanf("%s",&s.num);
printf("请输入年龄: ");
scanf("%d",&s.age);
printf("请输入性别: ");
scanf("%s",&s.sex);
printf("请输入年级: ");
scanf("%d",&s.grade);
printf("请输入成绩: ");
scanf("%d",&s.score);
s.next=NULL;
fwrite(&s,sizeof(STUDENT),1,fg);
}
else break;
}
while(1);
fclose(fg);
readfile();
getch();
}
把这个fg=fopen("C:\Users\hust\Desktop\新建文件夹\student.dat","rb");
换成下面看看
fg=fopen("C:\\Users\\hust\\Desktop\\新建文件夹\\student.dat","rb");
因为一个\是转义字符,多一个才行
1.如果文件不在当前文件夹当中,需要输入绝对路径。或者,使用system("CD")指令更改当前路径,在目标文件路径下打开文件。
2.对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。
C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。
3.fopen的函数原型:FILE * fopen(const char * path,const char * mode);
fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
wt+ 读写打开或着建立一个文本文件;允许读写。
at+ 读写打开一个文本文件,允许读或在文本末追加数据。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。
文件路径分为绝对路径和相对路径。
绝对路径:是从盘符开始的路径,形如
d:\project\data\input.txt
相对路径:是从当前路径开始的路径,假如当前路径为d:\project
要描述上述路径,只需输入
data\input.txt
实际上,严格的相对路径写法应为
.\data\input.txt
其中,.表示当前路径,在通常情况下可以省略,只有在特殊的情况下不能省略。
与.类似..为父目录,也即上一层目录。
另外,还有一种不包含盘符的特殊绝对路径,形如
\windows\system32\cmd.exe
无论当前路径是什么,会自动地从当前盘的根目录开始查找指定的程序。
在那不错了,你在路径里不要用中文名,再试试,如果还不行,把路径改为D盘或E盘再试试,或者再把打开方式改为:
将“ fg=fopen("C:\Users\hust\Desktop\新建文件夹\student.dat","rb"); ” 改为:
“ fg=fopen("C:\\Users\\hust\\Desktop\\新建文件夹\\student.dat","rb+"); ”
将 “ if ((fg=fopen("student.dat","wb"))==NULL) ” 改成:
“ if ((fg=fopen("student.dat","wb+"))==NULL)”
再试试,应该会好的
相关阅读
舌尖上的中国川菜 一般以整鸡为主料
膳食纤维的作用 薯类和裙带菜等
csol抽芯片技巧 那个看运气的
花右京女仆队 知道的跟我说下啊!!!谢谢
猛犸牙 猛犸象的牙质脆
dnf战斗法师刷图 PK的就可以+1或不加)
2012票房 截至1月10日
猫肉火锅 肥瘦猪肉洗净
灭却师 据正式的记载
dearsister电视剧 是她首次为剧集写歌
济南月亮湾 景区构筑自然
流处理器 两个不同的概念
破坏军婚罪 每次住一礼拜左右
花的谜语 1梅花2野梅花(解释
皮皮鲁和魔方大厦 《皮皮鲁总动员》是郑渊洁
联销 事业单位之间
考古怎么练 然后凑齐碎片合成垃圾
淘宝网皇冠店铺 最新流行的女装
316不锈钢价格 公平的定价机制
牧之 授弘文馆校书郎
boeh both可以单独使用
缓凝剂 但在混凝土中
c8813root 先去华为官网拿解锁码
类似寻找大象的电影 tt1522832
浮躁的意思 举动)沉着而有分寸
bmw740 0升排量的V8发动机
狂暴战士输出 以目前的版本看
热火和凯尔特人 【我不是凯尔特人球迷!】
海员证 28-33mm)9
男性黑人 性方面并非长粗就厉害
海贼王580 (比如艾斯的身份
苏泊尔质量门 镍含量不达标的问题
csol生化盟约 相信在生化盟战模式中
花姐的个人资料 而就是那个时候开始
生物入侵的例子 福建省专家通过研究
给小孩 非宁静无以致远”)
dnfnpc时装 胸部红色飘逸围巾(13)
approaches 接洽[p1][(+to)]
老兵永不死 “老兵永远不死
签名档 点击签名档进行修改