1樓:ghos丶
你的out.txt的內容是你自己打進去的,不是用fwrite寫進去的,而且你結構中還包含了,什麼的,如果你的內容是用fwrite寫進去的就可以用fread讀了,
它們是要配合使用的。
2樓:匿名使用者
別取巧啦。。
struct student_type
stud[size];
問題在於它的內容比有效的內容大很多。所以讀入的時候,把下個記錄的內容也讀進來了。
用空格和逗號作分隔,一個一個讀取吧。
3樓:來自地質公園靈敏的廣玉蘭
好難啊 我自己也看不懂。。。
4樓:手機使用者
yo,加分了,給我留著
c 語言,檔案操作將結構體陣列用fwrite寫入檔案後,開啟時為什麼檔案中會是一堆亂碼?
c語言結構體檔案寫入亂碼.......
5樓:匿名使用者
fwrite是將記憶體中的資料不經轉換直接寫入檔案,所以檔案中儲存的是二進位制形式,當然看到亂碼了。
你可以試試:
fprintf(fp1,"%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.
rental_duration,copy1.director,copy1.actor,copy1.
genre);
另外,輸入字串時,不用取地址。
scanf("%s%s%s%s%s%s",copy1.title,copy1.copies,copy1.
rental_duration,copy1.director,copy1.actor,copy1.
genre);
詳細可以看看
6樓:滿元修倫庚
1、最好用2進位制方法開啟檔案,用fwrite 寫檔案。讀時也用用2進位制方法開啟檔案,用fread讀.這樣,寫的時候按整個結構寫,讀也按整個結構讀,字串有空白也沒關係。
2、例程:
file *fp;
fp=fopen("my.dat","wb");
寫1個結構
for (i=0;i<寫10個結構
fclose(fp);
fp=fopen("my.dat","rb");
讀1個結構
for (i=0;i<讀 10個結構
fclose(fp);
關於c語言中結構體和檔案讀取輸出問題
7樓:
當然要錯 改成
fread(stu,sizeof(stu),1,fp);
一個讀資料是讀一條結構體的資料進去 不能分開讀
8樓:投機士
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語言 將結構體寫入檔案後讀取的問題
9樓:匿名使用者
寫完檔案後,fp指標要重置到檔案開頭,才可以,不用fclose();,fclose(fp)要最後才用
示例://程式示例 fwrite fread fseek
#include
#include
int main ()
fwrite(msg,strlen(msg),1,fp);//把字串內容寫入到檔案
fseek(fp,0,seek_set);//定位檔案指標到檔案開始位置
fread(buf,strlen(msg),1,fp);//把檔案內容讀入到快取
buf[strlen(msg)] = '\0';//刪除快取內多餘的空間
printf("buf = %s\n",buf);
printf("strlen(buf) = %d\n",strlen(buf));
return 0;}
C語言操作,C語言檔案操作
照你那樣說的插入是不太可能的,從底層看,檔案一般都是通過重寫插入刪除資料的。如果你要插入的話,就是把插入點之後的資料全都複製下來,然後寫上要插入的東西,然後再把複製的資料全部粘上。刪除也是一樣,把你要刪除的資料用後面的資料覆蓋上。無論什麼編輯器都是以這樣的原理實現的。可能它們用了這樣或那樣的演算法優...
c語言結構體別名定義問題,C語言結構體別名定義問題
typedef struct stu linklist 此處第一了一個型的型別,即struct stu 即指向結構體stu的指標 所以head的型別也就是struct stu head為一個指向stu結構體型別的指標。但是並沒有未其分配具體的空間。可以將一個已定義為stu結構體的指標賦給它。c語言給...
c語言結構體程式設計題,求大神,C語言結構體程式設計題,求大神!
根據題意 一 教師資訊定義為結構體,其成員年月也為結構體 可直接定義成兩個成員變數,本題沒有強制要求 婚姻狀態採用共用體型別。二 輸入資訊直接寫在main函式,實際軟體開發應單獨寫輸入函式,輸入驗證我只寫了性別和婚姻狀態的驗證,其餘成員的輸入驗證需要自己新增。實際開發,驗證也應單獨寫函式呼叫 三 輸...