文件操作
2、假设有文件C:\f11.txt,其中保存着一批学生的3门考试成绩,第一个数据为学号,每位学生一行,格式如下:
001 67.5 86.5 33
002 90 98 66
003 60 69 80
……
编写程序实现功能:
a、 把这个文件的全部数据复制到新文件C:\f11a.txt中去,在C:\f11a.txt中每位学生的3门成绩后面增加一项平均成绩,5项数据之间用制表符或者空格符分隔。
b、 接收用户从键盘输入的学号,查询文件C:\f11a.txt,找到和用户输入学号相同的一行学生信息,并且输出该行学生信息。
这是我编写的代码:
#include <stdio.h>
#include <stdlib.h>
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,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2]);
//fprintf(stdout,"%g",s.score[2]);
FILE * fw;
fw=fopen("c:\\f11a.txt","wb+");
if (!fw)
{
printf("file cannot be opened");
exit(1);
}
while(!feof(fp))
{
s.rank=(s.score[0]+s.score[1]+s.score[2])/3;
fwrite(&s,sizeof(s),1,fw);
fscanf(fp,"%03d%f%f%f",&s.id,&s.score[0],&s.score[1],&s.score[2]);
}
fclose (fp);
fclose(fw);
return 0;
}
重新打开f11a.txt文件并不是所要的类型,求大神帮我修改完成!
我真想杀了二楼,学号的我改了,不过转成char总行吧,路又不是死的。。。说那么多废话。。
我说的是如何把结构体的内容写入文件!你说反了,这么大的标题—-—。先把id换成char试试,不过依旧不能给你分。
追答同学,你这样的态度就不大好,咱们既然来给你看问题,肯定是仔细看过了,你把读文件的功能实现了吗????嘿嘿,如果你理解了,写文件你会做不了???!!!
提问题要谦虚一点,你以为BAIDU的分是$啊!!!哈哈
如果我真会了,还用问吗。。。分给你我眼就瞎了。。。
追答好吧,同学,我的代码你只管拿去用,你的分数下次还可以接着用,呵呵。
还有,你的学号是以0开头的,如果用int能读到001,那我服了!!!
同学,你太可爱了,如果你是女生,我非娶了你不可!!!
死边边去,别丢人。。。
c语言写入文件方法
1 在代码中引用stdio.h,即 include <stdio.h> C语言的所有文件操作接口,均声明在这个头文件中。2 定义FILE *类型的变量。3 打开文件,使用函数为fopen。格式为:FILE *fopen(char *filename, char *mode);参数filename为要写入的文件名,mode为打开的方式,如果仅需写入文件,可以使用"w"或 "...
c语言如何输入文件夹?
1、首先,创建一个新文件夹,在该文件夹中创建一个文档,如下图所示,然后进入下一步。2、其次,双击C语言编辑器打开,如下图所示,然后进入下一步。3、接着,在编辑器内创建一个新的源文件,如下图所示,然后进入下一步。4、然后,编写C语言的基本框架,如下图所示,然后进入下一步。5、随后,...
C语言如何写入文本文件
1、首先输入下方的代码 include <stdio.h> int main(){ \/\/下面是写数据,将数字0~9写入到data.txt文件中 FILE *fpWrite=fopen("data.txt","w");if(fpWrite==NULL){ return 0;} for(int i=0;i<10;i++)fprintf(fpWrite,"%d ",i);fclose(fpWrite);\/\/下面是读数据,将读到的数据...
c语言怎么将数据写入文件?
首先打开VC++6.0。选择文件,新建。选择C++ source file 新建一个空白文档。先声明头文件#include <stdio.h>。写上主函数 void main 主要代码 FILE *infile,*outfile,*otherfile;char input;char inputs[10];int i=0;infile = fopen("d:\\\\infile.txt","r+");\/\/用fopen函数打开文件 outfile...
C语言中,如何把数组里的数据写入文件
使用for循环语句+文件操作函数即可把数组里的数据写入文件。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell...
怎样写入文件(C语言)急!急!急!
那就用结构体吧。定义一个客户结构体,以结构体的形式写入文件。比如:struct client{ char name[20];int age;char sex;char addr[100];};struct client s1,s2;假设已经给s1,s2赋值了。fp=fopen("a.txt","w");fwrite(&s1,sizeof(struct client),1,fp);\/\/这样就写入了文件 ...
c语言中怎么把一个结构体数组写入文件
C语言把一个结构体数组写入文件分三步:1、以二进制写方式(wb)打开文件 2、调用写入函数fwrite()将结构体数据写入文件 3、关闭文件指针 相应的,读文件也要与之匹配:1、以二进制读方式(rb)打开文件 2、调用读文件函数fread()读取文件中的数据到结构体变量 3、关闭文件指针 参考代码如下:include<...
怎么把c语言编的程序的结果输入到一个文本文件中?
c语言编的程序的结果输入到一个文本文件中可以使用fprintf;例:include<stdio.h> main(){ FILE *fpt;fpt = fopen("wendangming.txt","w");\/\/打开文档,写入 fprintf(fpt,"Hello world");fclose(fpt);}
C语言fwrite怎么写入文件?
C语言fwrite写入文件可以参考以下的代码:\/\/ 定义一个学生结构体 struct Student_type { char name[10];int num;int age;char addr[30];}stud[40];int i;FILE *fp; \/\/ 定义一个文件指针fp fp = fopen("stu.dat", "wb"); \/\/ 以二进制可写方式打开stu.dat文件 \/\/ 将40个学生的...
C语言中如何将一个数组导入到文件中?
1 将数组以二进制方式写入文件。如 fwrite(a, sizeof(a), 1, fp);可以将数组整体以二进制方式写入文件中。2 按照元素,依次写入文件。具体写入格式与数组的类型有关。如为int数组可以写作:int i;for(i = 0; i < N; i++)fprintf("%d,", a[i]);两种方法各有优缺点:1 代码量上,第...