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

2022-03-02 02:44:00 字數 5281 閱讀 1279

1樓:匿名使用者

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 字元用來告訴函式庫開啟的檔案為二進位制檔案,而非純文字檔案。

2樓:匿名使用者

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

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

return i;}

3樓:匿名使用者

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

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

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

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

5樓:_鈊_煩_薏亂

首先包含標頭檔案:#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++如何動態讀寫dat檔案

6樓:滄海雄風

#include

#include

using namespace std;

int main()

7樓:匿名使用者

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

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

稍微改下就可以了

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

c++ 讀取檔案(.dat), 並且儲存 檔案內容如下

8樓:匿名使用者

基本概念,是尋找字元,判斷含義,分解提取。

你需要#include

然後file*hand=fopen(...)見

。for語句加if判斷,一個個字元檢查,

用fseek seek_end和ftell獲取檔案長度

。在這份檔案裡,字元分為五種:

如果用unsigned char code;

就會得到:

1.大寫英文,65<=code<91,

2.小寫英文,97<=code<123

3.數字,48<=code<58,

4.回車,code==13,

5.空格及其他,code==20或不符合上述任一。

其中,前三種,都是按英文字母順序,和數字從小到大排列。

9樓:匿名使用者

檔案內各行資料格式不完全相同,必須有統一的資料儲存格式方可提取正確,比如每行各個資料欄位之間用製表符分割,並且,如果檔案並不是很大,建議一次性讀取全部資料, 如果檔案較大,建議單次讀取適量資料。以減少io操作次數,提高效能。

10樓:

直接用read /write不就可以了嗎?

11樓:

用fscanf和fprintf就行了、

跟scanf和printf差不多的用法、

具體查msdn、

c++用什麼方法可以讀取檔案.dat字尾格式的檔案?

12樓:匿名使用者

程式讀取檔案只區分是二進位制檔案還是文字檔案,對檔案字尾不感冒(也就是為什麼unix系統的檔案不必有字尾名,檔案字尾只是windows系統必須的東西)

c++讀取檔案可以用檔案流

#include

#include

#include

using namespace std;

ifstream ifs("filename.dat");//以讀方式開啟檔案

string s;//接受字串

const size_t size_of_array = 100;//定義陣列容量

int array[size_of_array];

size_t i = 0;//陣列下標

while(ifs >> s)//每次讀取一個字串到s中(遇到空白字元返回,包括空格、換行、tab),因為每行一個數,所以會讀取一行,讀取到最後,流遇到檔案結束符,流狀態無效退出迴圈

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

13樓:

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

char name[25];

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

14樓:匿名使用者

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 讀取檔案。檔案內容如下

很簡單 我來寫 2011 03 01 00 00 00,9001,0011156,92,10,87303291,150262852 2011 03 01 00 00 00,9001,0011156,3,10,87303289,216000651 press any key to continue i...

用C編寫Windows程式讀取檔案內容

根據某一行後面固定的字串,分別讀取本行該字串前面的數字這一句不是很明白,是每一行都有?還有你這數字字串一行有幾個?描述詳細些 用c 編寫一個windows應用程式,該程式功能為 從本機讀取一個文字檔案 檔案中不包含中文字元和符 10 在程式中獲得字串中數字或字母的長度時,可以先使用charenume...

C 中怎樣將檔案的內容讀取到string型別的字串中。謝謝

fstream fs file.txt 建立個檔案流物件,並開啟 file.txt stringstream ss 建立字串流物件 ss fs.rdbuf 把檔案流中的字元輸入到字串流中 string str ss.str 獲取流中的字串 用檔案流 需要標頭檔案cstdio freopen a.in...