C 資料結構與演算法 學習隨筆二

2021-08-04 18:49:38 字數 1682 閱讀 6021

本文主要介紹使用fstream流輸入和輸出txt檔案的方法及相關注意事項。

使用fstream將相關資訊寫入到txt檔案中,因為fstream既能讀又能寫,所以在開啟txt檔案時需要指明對其進行的操作。

關於檔案的開啟方式說明如下:

在開啟檔案之後(預設為檔案存在開啟,檔案不存在新建乙個),可以使用writefile.write()或writefile<<"" 寫入檔案,切記在用完後一定要記得關閉流,writefile.close();

**示例:

fstream out;

pr.writetofile(out);

void personal::writetofile(fstream& out)

使用fstream讀檔案的時候,後面不要加ios::ate 否則只能讀取最後一行資料不能全部讀取檔案中資料;

例如:fstream readfile;readfile.open("a.txt",ios::in) //同樣可以利用建構函式開啟,這裡不再贅述。

讀取檔案位置操作:

seekg(絕對位置); //絕對移動,通過seekg(絕對位置)函式可以設定從檔案哪個位置開始讀,streampos為位置型別名  示例:streampos curpos; seekg(curpos); 

seekg(偏移量,相對位置);  //相對操作,偏移量可正可負,0表示不偏移,正表示在相對位置往後移動偏移量,負數表示往前移動偏移量;

相對位置有三種情況:ios::beg ios::cur ios::end     seekg(0,ios::end)//表示定位到檔案尾 不偏移,seekg(5,ios::beg)//定位到檔案頭往後偏移5位元組

tellg();  //返回當前指標位置

寫入檔案位置操作:

seekp(絕對位置);  //絕對移動

seekp(偏移量,相對位置);  //相對操作 

tellp();          //返回當前指標位置

相對位置型別:

ios::beg  = 0       //相對於檔案頭

ios::cur   = 1       //相對於當前位置

ios::end  = 2       //相對於檔案尾

讀取檔案**示例:

pr.curpos=pr.initpos=input_file.tellg();
while (input_file.peek()!=eof)//!input_file.eof()此方法最後一行資料會重複輸出兩次

streampos personal::readfromfilepos(fstream& readfile,streampos cur,streampos init)

readfile.read(ssn,9);

readfile.read(name,namelen);

readfile.read(city,citylen);

readfile.read(reinterpret_cast(&year),sizeof(int));

readfile.read(reinterpret_cast(&salary),sizeof(long));

return readfile.tellg();

}

資料結構與演算法學習二

1 用js中object物件模擬集合set的資料結構 set集合中的資料結構 s s 即集合中的鍵 值相同。故,可令object物件中的鍵 值相同,來模擬set集合及其中的方法,如下 用js中object模擬實現集合set資料結構 es6中有set類,避免混淆這裡用set2 var set2 fun...

資料結構與演算法學習總結(二)

1.什麼是複雜度分析?1 資料結構和演算法解決是 如何讓計算機更快時間 更省空間的解決問題 2 因此需要從執行時間和占用空間兩個維度來評估資料結構和演算法的效能。3 分別用時間複雜度和空間複雜度兩個概念描述效能問題,二者統稱為複雜度。4 複雜度描述的是演算法執行時間 或占用空間 與資料規模的增長關係...

資料結構與演算法學習

我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...