c語言寫入結構體
⑴ c語言中結構體怎麼寫
以struct打頭,後面可以跟結構體名稱,然後大括弧中寫出結構體組成,比如:
struct Student { int number; float score[5]; };
其中Student就是結構體名稱,這個名稱可以當作自定義的數據類型來使用
Student a[10];
⑵ C語言 怎麼把結構體寫入文件
你把結構體轉成字元數組或者字元串 保存就行
⑶ C語言怎麼把結構體寫入文件
一般有兩種方法.
以
structA
{
inta;
floatf;
chars[10];
}m;
為例:
一種是寫文本文件
以"w"打開
fprintf(fp,"%d%f%s ",m.a,m.f,m.s);
另一種是寫二進制文件.
以"wb"打開
fwrite(&m,sizeof(m),1,fp);
⑷ c語言 怎麼將結構體寫入文件
最好用2進制方法打開文件,用fwrite 寫文件。讀時也用用2進制方法打開文件,用fread讀.
這樣,寫的時候按整個結構寫,讀也按整個結構讀,字元串有空白也沒關系。
FILE *fp;
fp=fopen("my.dat","wb");
fwrite(&stu,sizeof(stu),1,fp); // 寫1個結構
for (i=0;i<10;i++) fwrite(&student[i],sizeof(student),1,fp); // 寫10個結構
fclose(fp);
fp=fopen("my.dat","rb");
fread(&stu,sizeof(stu),1,fp); // 讀1個結構
for (i=0;i<10;i++) fread(&student[i],sizeof(student),1,fp); // 讀 10個結構
fclose(fp);
⑸ c語言中怎麼把一個結構體數組寫入文件
C語言把一個結構體數組寫入文件分三步:
1、以二進制寫方式(wb)打開文件
2、調用寫入函數fwrite()將結構體數據寫入文件
3、關閉文件指針
相應的,讀文件也要與之匹配:
1、以二進制讀方式(rb)打開文件
2、調用讀文件函數fread()讀取文件中的數據到結構體變數
3、關閉文件指針
參考代碼如下:
#include<stdio.h>
structstu{
charname[30];
intage;
doublescore;
};
intread_file();
intwrite_file();
intmain()
{
if(write_file()<0)//將結構體數據寫入文件
return-1;
read_file();//讀文件,並顯示數據
return0;
}
intwrite_file()
{
FILE*fp=NULL;
structstustudent={"zhangsan",18,99.5};
fp=fopen("stu.dat","wb");//b表示以二進制方式打開文件
if(fp==NULL)//打開文件失敗,返回錯誤信息
{
printf("openfileforwriteerror ");
return-1;
}
fwrite(&student,sizeof(structstu),1,fp);//向文件中寫入數據
fclose(fp);//關閉文件
return0;
}
intread_file()
{
FILE*fp=NULL;
structstustudent;
fp=fopen("stu.dat","rb");//b表示以二進制方式打開文件
if(fp==NULL)//打開文件失敗,返回錯誤信息
{
printf("openfileforreaderror ");
return-1;
}
fread(&student,sizeof(structstu),1,fp);//讀文件中數據到結構體
printf("name="%s"age=%dscore=%.2lf ",student.name,student.age,student.score);//顯示結構體中的數據
fclose(fp);//關閉文件
return0;
}
fwrite(const void*buffer,size_t size,size_t count,FILE*stream);
(1)buffer:指向結構體的指針(數據首地址)
(2)size:一個數據項的大小(一般為結構體大小)
(3)count: 要寫入的數據項的個數,即size的個數
(4)stream:文件指針。
⑹ 關於C語言的文件寫入結構體數據
結構體寫入文件是有前提的,你的結構體中不能出現指針,如果確定結構體中沒有指針的話,就可以進行如下操作
typedef struct
{
//中間不能定義指針;
}a;
a var //結構體定義的變數
fwrite(&var, sizeof(a), sizeof(a), hfile);
⑺ c語言將結構體寫入文件
誰說fwrite只能寫入整形的
fwrite((void*)&variable, 1, sizeof(float), fp);
寫結構體入文件時要格外注意對齊格式,最好可以單元素寫,單元素讀。整個結構體寫入的話,如果讀出程序對齊格式與寫入程序不同,那讀出來的數據一定是錯的。
⑻ C語言 怎麼把文件中的信息儲存到結構體數組中
write(&cus[i],sizeof(struct
client),1,fp)
是什麼意思
答:c語言把一個結構體數組寫入文件分三步:
1、以二進制寫方式(wb)打開文件
2、調用寫入函數fwrite()將結構體數據寫入文件
3、關閉文件指針
相應的,讀文件也要與之匹配:
1、以二進制讀方式(rb)打開文件
2、調用讀文件函數fread()讀取文件中的數據.
⑼ C語言怎樣將.txt文件中的數據寫入到結構體中去
txt文件中的數據寫入到結構體中去的源代碼如下:
#include<stdio.h>
#include <string.h>
//可以退出的頭文件
#include <stdlib.h>
//結構體的長度
#define DATALEN 15
//函數聲明
//定義結構數組
struct wordUnit{
int id; //id
char word[10]; //詞語
char depId[10]; //依存詞語的id
char pos[10]; //詞性
char depRel[10]; //依存目標的關系
};
int main(){
FILE *data;//要讀取的文件指針
int i=0;//結構題數組移動
struct wordUnit words[DATALEN];
if((data=fopen("data3.txt","r"))==NULL){
printf("Can not open file ");
return 0;
}
while(!feof(data)){
//原txt文檔的數據之間是以空格隔開的
}
fclose(data);
for(int j=0;j<i;j++){
}
return 0;
}
(9)c語言寫入結構體擴展閱讀
1、使用關鍵字struct,它表示接下來是一個結構體。
2、後面是一個可選的標志(book),它是用來引用該結構體的快速標記。