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;
}