C 如何動態讀寫dat檔案,c 如何讀取dat檔案 並將內容寫入記憶體中

2022-03-02 05:55:57 字數 5153 閱讀 6761

1樓:滄海雄風

#include

#include

using namespace std;

int main()

2樓:匿名使用者

這只是一個c++標準上的"遺漏?"

ofstream 並不接受std::string作為它的引數, 它只接受一個c式的字串作為檔名.

稍微改下就可以了

ofstream outfile(dat_name.c_str()); // c_str成員函式把一個string轉換為c式字串

c++如何讀取dat檔案 並將內容寫入記憶體中

3樓:洋依然陰義

1.對於程式來說,不管字尾名如何,檔案分為兩種型別:文字檔案和二進位制檔案。

c語言裡有一系列檔案操作函式。區分文字和二進位制檔案,需要在開啟檔案時設定不同的控制符mode的變數即可。

2.fopen的函式原型:file

*fopen(const

char

*path,const

char

*mode);

fopen函式的第一個引數是檔案路徑,第二個引數是開啟方式,有以下幾種方式:

r以只讀方式開啟檔案,該檔案必須存在。

r+以可讀寫方式開啟檔案,該檔案必須存在。

rb+讀寫開啟一個二進位制檔案,允許讀資料。

rw+讀寫開啟一個文字檔案,允許讀和寫。

w開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。

(原來的eof符不保留)

wb只寫開啟或新建一個二進位制檔案;只允許寫資料。

wb+讀寫開啟或建立一個二進位制檔案,允許讀和寫。

wt+讀寫開啟或著建立一個文字檔案;允許讀寫。

at+讀寫開啟一個文字檔案,允許讀或在文字末追加資料。

ab+讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

上述的形態字串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b

字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。

c++如何讀取dat檔案 並將內容寫入記憶體中

4樓:匿名使用者

1.對於程式來說,不管字尾名如何,檔案分為兩種型別:文字檔案和二進位制檔案。

c語言裡有一系列檔案操作函式。區分文字和二進位制檔案,需要在開啟檔案時設定不同的控制符mode的變數即可。

2.fopen的函式原型:file * fopen(const char * path,const char * mode);

fopen函式的第一個引數是檔案路徑,第二個引數是開啟方式,有以下幾種方式:

r 以只讀方式開啟檔案,該檔案必須存在。

r+ 以可讀寫方式開啟檔案,該檔案必須存在。

rb+ 讀寫開啟一個二進位制檔案,允許讀資料。

rw+ 讀寫開啟一個文字檔案,允許讀和寫。

w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。

w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。

a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)

a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的eof符不保留)

wb 只寫開啟或新建一個二進位制檔案;只允許寫資料。

wb+ 讀寫開啟或建立一個二進位制檔案,允許讀和寫。

wt+ 讀寫開啟或著建立一個文字檔案;允許讀寫。

at+ 讀寫開啟一個文字檔案,允許讀或在文字末追加資料。

ab+ 讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

上述的形態字串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。

5樓:匿名使用者

int read_data(file *fin,int *a,int len)

printf("read %d from unsort file!\n",i);

return i;}

6樓:匿名使用者

完成這個工作不算難,但問題是結構的具體宣告難以猜測,請提供!

怎樣用c++從dat檔案中讀入資料?

7樓:

在結構持久序列化裡面是不能出現char *name,這樣的指標性變數的,因為指標所指向的是記憶體而不是實際的資料,這些記憶體在釋放後將會被其它資料填充或被清除,因此必須使用:

char name[25];

然後填充實際資料,這樣儲存的才是實際的資料

8樓:匿名使用者

float x[165];

float y[165];

file *f;

f = fopen(「jiedian.data","r"); //「jiedian.data」改為完整路徑

char c1[10],c2[10];

if(!feof(f))

fclose(f);

}有問題再說!

如何用c++把計算得到的資料讀取到檔案(.dat)中?應該怎樣寫?

9樓:_鈊_煩_薏亂

首先包含標頭檔案:#include

using namespace std;//名稱空間。

這是我在一個小遊戲中的運用,希望你能看懂關鍵的部分即可。

int maxscore = 0; //記錄最高的分

bool newscore = false; //記錄是否出現更新分數的情況,以備後用

ifstream in("maxscore.dat"); //查詢並開啟maxscore.dat檔案

if(!in) //如果不存在則新建一個

if(score>maxscore) //判斷當前分數是否高於歷史最高分

ofstream out("result.txt"); //使用當前文字文件輸出遊戲資料

if(!out)

messagebox(hwnd,_t("檔案開啟失敗,成績儲存失敗"),_t("警告"),0);

out<<"你正確按鍵次數是"<

out<<"你的總按鍵次數是"<

out<<"最高速度你挺到了"<

out<<"你的得分是:"<< score<<"\n";

//開啟了檔案不要忘了關閉哦。

怎麼樣用c、c++讀取別人寫的dat檔案 5

10樓:

c語言的檔案操作是用指標來完成的,你首先需要一個檔案指標

file* fp; 然後呼叫一批操作檔案的函式來讀寫檔案。

fopen() 開啟檔案

fread() 讀檔案

fseek()在檔案中前進後退

fclose()關閉檔案

c++語言的檔案操作是物件導向的方式的,你首先要有一個檔案物件,檔案物件初始化的時候傳入檔名,就構造出了讀寫檔案的物件,然後操作這些物件來完成讀寫。

ifstream file1("c:\\pdos.def");//以輸入方式開啟檔案,file1是一個讀檔案物件。

ofstream file2("c:\\x.123");//以輸出方式開啟檔案 ,file2是一個寫檔案物件。

例如關閉檔案就呼叫

file1.close();

讀入檔案可以用get成員函式

file2.get(str1, 1024, '\n'); //從檔案中讀取字元到字串str1,當遇到回車或讀取了1024個字元時終止。

檢測是否到達檔案結尾用eof函式

if(file2.eof()) printf("已經到達檔案尾!");

c++操作檔案的前進後退的函式是 seekg()和 seekp(),例如

file1.seekg(128,ios::end);//把檔案的讀指標從當前位置向後移128個位元組

file2.seekp(1024,ios::beg);//把檔案的寫指標從檔案開頭向後移1024個位元組

還有最後一點,就是不管是什麼語言,當你讀一個檔案的時候,你需要弄清楚檔案的格式,例如檔案中的資料是弄哪種分隔符的,是tab還是回車還是逗號分隔,針對具體的檔案格式編寫自己的讀寫函式,c++提供的標準函式並不能直接幫你完成各種格式的讀取。

11樓:狂飆的蝸牛

找到他寫的dat檔案,點滑鼠右鍵,選擇開啟方式,瀏覽找你電腦裡安裝的程式設計軟體,左鍵點一下程式設計軟體即可!望採納!

12樓:匿名使用者

如果dat檔案是文字檔案,就與讀取txt檔案一樣直接,請參考其他人的回答。

如果dat檔案是二進位制檔案,那就必須知道寫入格式,即是他是如何寫入的,比如說他是先寫入一個int再寫入兩個char再寫入三個double,你讀取也要按照那個順序,否則讀出來的資料與他寫入的資料意義不一致

想要判斷一個檔案是文字檔案還是二進位制檔案,可以用記事本開啟它,如果看到的內容無亂碼就是文字檔案,如果看到的是一大串亂碼則是二進位制檔案。

13樓:匿名使用者

file fp =fopen(檔名, "rb+");

if fp == null

....

fread(....

fseek(...

fclose(fp);

就可以了

如何用matlab批量處理dat檔案

for i 1 300 g load strcat g num2str i dat len i length g end上面程式生成的是一個cell型別的變數g,含有300列資料,分別從300個檔案中讀取出來的。可以不去在意有多少行。如果達到要求的話,上面的 就足夠。最終的結果就是g。cell的操作...

visualstudio中如何執行c檔案

1 開啟visual studio,檔案 新建 專案 2 選擇visual c 選擇空專案,填寫名稱 確定 3 新增.cpp檔案,原始檔 新增 新建項4 visual c c 檔案 填寫檔名稱 新增 5 寫入 即可 建立c 工程 新增c 檔案 你應該已經寫好程式了吧 然後按f5或者除錯 啟動除錯 就...

如何用c語言建立新檔案,如何用C語言建立一個新檔案

函式名 mkdir 功 能 建立一個目錄 資料夾 用 法 int mkdir char pathname 程式例 在win tc和dev c 下執行通過 include include include int main void c語言可以通過fopen函式建立一個新檔案。細節如下 使用fopen需...