永发信息网

c语言写入文件方法

答案:6  悬赏:60  手机版
解决时间 2021-01-12 01:37
c语言写入文件方法
最佳答案
要写入文件,可以按照以下步骤进行操作:
1 在代码中引用stdio.h,即
#include
C语言的所有文件操作接口,均声明在这个头文件中。
2 定义FILE *类型的变量。
3 打开文件,使用函数为fopen。格式为:
FILE *fopen(char *filename, char *mode);
参数filename为要写入的文件名,mode为打开的方式,如果仅需写入文件,可以使用"w"或
"wb"。
返回值为文件指针类型,赋值给之前定义的变量。如果返回值为NULL,代表打开失败,无法写入。
4 对文件进行写操作。C语言中有很多写文件的接口,包括fprintf, fwrite, fputs, fputc等等。
写操作可以执行多次。
5 在全部写操作完成后,执行fclose函数关闭文件指针。这样就实现了C语言写入文件。
全部回答
sad..
哥们,给分吧!要快!!!
第一、你的结构体设计得有问题。
因为你的学号不是int, 是char*,OK?
应该改成:
typedef struct student
{
char id[3];
float score [3];
float rank;
}Student;
第二、如何正确从文件读取数据
按照你的文件格式,把数据读入结构体,其实很简单
int main ()
{
Student s;
FILE * fp;
fp=fopen("1.txt","r");
if (!fp)
{
printf("file cannot be opened");
exit(1);
}
fscanf(fp,"%s%f%f%f\n",s.id,&s.score[0],&s.score[1],&s.score[2]);
printf("%s %f %f %f\n",s.id,s.score[0],s.score[1],s.score[2]);
}
第三、到这里,你的所有问题都已经解决了
我上面提到的两点,你理解了,其实你说的问题就解决了,Right?记住:关键是要把学号看成char*
结贴吧追问我说的是如何把结构体的内容写入文件!你说反了,这么大的标题—-—。先把id换成char试试,不过依旧不能给你分。追答同学,你这样的态度就不大好,咱们既然来给你看问题,肯定是仔细看过了,你把读文件的功能实现了吗????嘿嘿,如果你理解了,写文件你会做不了???!!!
提问题要谦虚一点,你以为BAIDU的分是$啊!!!哈哈追问如果我真会了,还用问吗。。。分给你我眼就瞎了。。。追答好吧,同学,我的代码你只管拿去用,你的分数下次还可以接着用,呵呵。
还有,你的学号是以0开头的,如果用int能读到001,那我服了!!!
同学,你太可爱了,如果你是女生,我非娶了你不可!!!
对于学号来说int 或是char的影响不是很大,没关系
至于读取数据方面我同意二楼的解释
我是南邮的呀、果断把分给我对吧
程序应该是%¥#@*&)*……&)……
&……¥(&……¥&……¥(*(*(&
……&%¥R^&$&*$&*&%*(&%*(*(%
……&¥R&*$(&%$*(&%*(%(*%
&……¥(&……¥&……¥(*(*(&
……&%¥R^&$&*$&*&%*(&%*(*(%
……&¥R&*$(&%$*(&%*(%(*%&……¥(&……¥&……¥(*(*(&
……&%¥R^&$&*$&*&%*(&%*(*(%
……&¥R&*$(&%$*(&%*(%(*%
这段是核心代码 以下省略10000字追问死边边去,别丢人。。。
程序注意的一点,二进制和文本形式的读取区别你需要巩固,读的文件就不要以读写形式打开,养成一个好的习惯。
另外一个不太重要的一点,id确实很少作为int类型的,因为有些id会很长,比如10位20位,这样int就存不下了,而用char数组存的话只需要10个字节20个字节就能存下,对于每一位也好比较。
#include
#include
typedef struct student
{
int unsigned id;
float score [3];
float rank;
}Student;
int main ()
{
Student s;
FILE * fp;
fp=fopen("C:\\f11.txt","r"); //尽量以可读方式打开
if (!fp)
{
printf("file cannot be opened");
exit(1);
}
//fscanf(fp,"%d %f %f %f",&s.id,&s.score[0],&s.score[1],&s.score[2]); 这一行拿到下面while语句里面
//fprintf(stdout,"%g",s.score[2]);
FILE * fw;
fw=fopen("C:\\f11a.txt","w"); //注意wb是以2进制形式打开文件,还有目录的格式
if (!fw)
{
printf("file cannot be opened");
exit(1);
}

while(!feof(fp))
{
fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2]);
s.rank=(s.score[0]+s.score[1]+s.score[2])/3;
fprintf(fw,"%03d\t%.1f\t%.1f\t%.1f\t%.1f\n", s.id, s.score[0], s.score[1], s.score[2], s.rank); //尤其注意fprintf和fwrite不同,fwrite是以二进制形式写文件,如果用fwrite的话将会显示乱码,fwrite和fread配套,fscanf和fprintf配套
}
fclose (fp);
fclose(fw);
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
在家庭电路中,电热水器正常工作的电压为____
We insisted that the girl qualified for t
里正在装修 下面就要打柜子了 但是墙还没有铲
1十1=3,为什么
求出处或名称
this that these those的用法
88888=0填上括号,使等式成立
有什么好看的武林的电视剧?
在2H2S+3O22SO2+2H2O的反应中,化合价发生了
洛一高地址从谷水坐几路车
现在时间为3点整,多长时间后,时针与分针重
风雨兰有毒吗
城区晋城农商银行(北城支行)在哪里啊,我有事
可以看女生下面的软件是什么
单选题下列不属于橘皮精油提取中应注意事项的
推荐资讯
硅光电池是利用光电效应将光辐射的能量转化为
生物量与净初级生产力有什么关系
全民神仙阵容怎么搭配 最佳阵容推荐
?图为人体某对染色体上基因(A、a为染色体上
风景G7和金杯海狮哪个好?
常州在哪考铲车证,学个铲车证要多少钱
穿衣服到离开家门需要用多少时间
当一国利率水平低于其他国家时,外汇市场上本
弹脂一挥间有什么作用和功效?
flash幻灯片之间如何切换?
子曰:"吾十有五而志于学........的解释
怎么才算熟悉JS原生代码编写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?