1. c语言文件读写结构体里面的数据怎样存到磁盘文件上
1、首先打开VC++6.0。
2. c语言怎么把一个结构体存入文件,在把文件读取怎
C语言,要将结构体中的数据存到磁盘上需要使用与文件操作相关的库函数。
首先要使用文件打开函数fopen()。
fopen函数用来打开一个文件,其调用的一般形式为: 文件指针名=fopen(文件名,使用文件方式) 其中,“文件指针名”必须是被说明为FILE 类型的指针变量,“文件名”是被打开文件的文件名。 “使用文件方式”是指文件的类型和操作要求。“文件名”是字符串常量或字符串数组。
其次,使用文件读写函数读取文件。
在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
最后,在文件读取结束要使用文件关闭函数fclose()关闭文件。
下面使用格式化读写函数fscanf和fprintf实现对文件A.txt(各项信息以空格分割)的读取,并存入结构体数组a中,并将它的信息以新的格式(用制表符分割各项信息)写入B.txt,实现对A.txt的处理。
C语言源程序如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
typedef struct student{
char name[32];
int no;
char sex[16];
float score;
} stu;
int main(int argc, char* argv[])
{
//打开文件
FILE * r=fopen("A.txt","r");
assert(r!=NULL);
FILE * w=fopen("B.txt","w");
assert(w!=NULL);
//读写文件
stu a[128];
int i=0;
while(fscanf(r,"%s%d%s%f",a[i].name,&a[i].no,a[i].sex,&a[i].score)!=EOF)
{
printf("%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到显示器屏幕
fprintf(w,"%s\t%d\t%s\t%g\n",a[i].name,a[i].no,a[i].sex,a[i].score);//输出到文件B.txt
i++;
}
//关闭文件
fclose(r);
fclose(w);
system("pause");
return 0;
}
3. C语言 如何连内容一起,将结构体以文件的形式保存下来,以及如何还原该结构体类型的数据
你是说把图书数据都保存到文件里吗??图片怎么存文件啊,而且还是多张图存文件里??
如果是其他数据的话,你自己定义一个格式就行了,比如按照上述变量的顺序一次存入,每个变量之间有一个逗号或者其他特殊符号来分隔。在你提取的时候,只要按照这个格式,用逗号来区分每个变量的结束就可以了。
图片的话,你可以存它的路径吧?或者把图片所在地方的数据用二进制读了来存?但和上面数据不太统一啊。
4. c语言中如何在结构体中输入数据,并将结构体储存到文件之中。比方说输入影片的信息 struct N
#include "stdio.h"
#include "stdlib.h"
struct s
{
int id;
char name[10];
int co1;
int co2;
int co3;
int co4;
};
int main()
{
int i=0,count;
struct s st[10];
char fname[10],ch;
FILE *infile,*outfile;
printf("please input data file name:\n");
scanf("%s",fname);
infile=fopen(fname,"r");
outfile=fopen("output.txt","w");
if(infile==NULL)
{
printf("\nFailed to open the file");
exit(1);
}
fscanf(infile,"%d",&count);
while(i<count)
{
fscanf(infile,"%d %s %d %d %d %d\n",&(st[i].id),st[i].name,&(st[i].co1),&(st[i].co2),&(st[i].co3),&(st[i].co4));
fprintf(outfile,"%d %s %d %d %d %d\n",st[i].id,st[i].name,st[i].co1,st[i].co2,st[i].co3,st[i].co4);
i++;
}
fclose(infile);
fclose(outfile);
}
5. c语言怎么用文件保存和读取 结构体数组/
#include <stdio.h>
int main()
{
struct test {
int a;
char s[10] ;
double d ;
} tr[3] , tw[3] ={
{1,"hello1" , 100 },
{2,"hello2" , 90},
{3,"hello3", 200}
} ; //定义一个结构体数组
FILE *fp ;
fp=fopen("struct.dat" , "wb" );
if ( fp == NULL )
return -1 ;
fwrite( (char*)tw , sizeof(struct test), 3 , fp ); //将数组写入文件
fclose(fp);
//以上完成写操作
fp=fopen("struct.dat" , "rb" );
if ( fp == NULL )
return -1 ;
fread( (char*)tr , sizeof(struct test), 3 , fp ); //从文件中读三个结构体的数据,也可以一个一个的读
fclose(fp);
//输出读到的数据
{
int i;
for(i=0;i<3;i++ )
printf("%d %s %lf\n" , tr[i].a , tr[i].s, tr[i].d );
}
return 0;
}