關於c語言中結構體和檔案讀取輸出問題

2022-02-17 16:29:37 字數 2430 閱讀 8503

1樓:

當然要錯 改成

fread(stu,sizeof(stu),1,fp);

一個讀資料是讀一條結構體的資料進去 不能分開讀

2樓:投機士

c語言中對結構體資料格式檔案進行讀取時,必須以二進位制格式開啟檔案,然後按結構體型別變數記憶體塊方式進行資料讀取,相關讀資料命令為fread()。

函式說明:

#include

size_t fread(void *ptr, size_t size, size_t nmemb, file *stream);

從stream檔案流中,讀取nmemb個size大小的資料塊到ptr所指的記憶體buf中,返回讀取到的有效資料塊數。

如,有如下結構體定義:

typedef struct test

int num;

double score;

}strtest;

strtest data ;

file *fp = fopen("file.dat", "rb" ) ; //按二進位制格式開啟檔案

讀取一個資料塊到變數data中。

注意,當結構體中定義的變數有指標型別時,在儲存資料時,就不能按結構體進行儲存了。

因為,指標變數中儲存的是記憶體地址,而程式在不同環境執行時,所使用的記憶體地址是不同的,只儲存記憶體地址,不能把真正的資料儲存下來,所以,即使是正確讀取到檔案內容,也不能得到當時的結構體記憶體資料。因而,在儲存結構體資料時,要根據結構體型別變數特點採用正確的方法進行儲存,才能正確的讀取。

c語言怎麼用檔案儲存和讀取 結構體陣列/

3樓:匿名使用者

結構體資料的儲存通常以二進位制形式進行.

file *fw = fopen(filename,"wb");

寫函式是

file *fr = fopen(filename,"rb");

讀函式是fread(*structdata,sizeof(structdata),1,fr);

每次讀寫都是一個完整的結構體資料。

4樓:匿名使用者

fread/fwrite,裡面是讀取/寫入塊,一個塊多少位元組,你可以把一個塊想象成為一個結構,數量就是陣列

5樓:匿名使用者

#include

int main()

tr[3] , tw[3] =,

,} ; //定義一個結構體陣列

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

//輸出讀到的資料

return 0;}

c語言,怎麼從檔案讀取資料到結構體,求助

6樓:匿名使用者

while(!feof(fp))

information.txt格式:

小紅 2014003 女 一班 99 100  // 資料間用空格隔開

c語言從文字檔案讀取資料到結構體陣列中的問題

7樓:金色潛鳥

關鍵問題是用 逗號分隔的 字串 ,不能用 逗號格式 這樣分開地讀出來。

要用 "%[^,],%[^,],%f" 格式 才行。

另外 讀引數用 &temp[n].mark 才行,你漏了 &.

--------

你先用下面程式讀2行,

01010101,ababcevvz,96.0020202,efgwe,56.0

試驗成功再讀全部。

#include

#include

struct student

;typedef struct student stu;

stu *temp;

int main()

fclose(fp);}--

讀完的控制用 if (fscanf(...)==eof) break;

c語言的連結串列的儲存與讀取,關於C語言中,連結串列資料的檔案儲存和提取。

你的檔案時以二進位制開啟的,用文字編輯器看亂碼是正常的。但是程式裡有幾個問題 1.typedef struct book typedef是多餘的 if fp null 開啟檔案出錯後,沒有退出函式,真的出現開啟檔案出錯,程式就有問題了。3.for p head pnext p p p pnext 一...

C語言中構造型別資料指什麼,C語言的結構體型別是什麼資料 資料有哪些型別?

構造資料型別 構造資料型別是根據已定義的一個或多個資料型別用構造的方法來定義的。也就是說,一個構造型別的值可以分解成若干個 成員 或 元素 每個 成員 都是一個基本資料型別或又是一個構造型別。在c語言中,構造型別有以下幾種 c語言中的構造型別資料包括 結構 列舉 聯合 或者寫結構體和共用體也行 1 ...

c語言中怎麼向檔案中寫入資料斑體點謝謝

不知你向檔案輸入的是什麼資料,輸入資料的函式很多,有fputc s,fp 有fwrite 函式 下面是想檔案輸入字元,並把字串中的小寫字元轉換成大寫字元 include include include int main printf 請輸入字元直至結束 ctrl z fflush stdin cha...