讀檔案
讀檔案與寫檔案步驟相似,但是讀取方式相對於比較多
步驟如下:
1.包含標頭檔案
#include
2.建立流物件
ifstream ifs;
3.開啟檔案並判斷檔案是否開啟成功
ifs.open(「檔案路徑」,開啟方式);
4.讀資料
四種方式讀取
5.關閉檔案
ifs.close();
#include
void
test1()
//第一種讀取
char buf[
1024]=
;//當資料存入陣列中,利用while迴圈
while
(ifs>>buf)
//利用右移運算子將檔案中的資料讀取到陣列中,當資料
//被全部讀取之後,會自動返回假,while迴圈結束
//第二種
char buf[
1024]=
;while
(ifs.
getline
(buf,
sizeof
(buf)))
//一行一行的去寫入,需要輸入寫入的位址,以為最大寫入的長度
//第三種
string buf;
while
(getline
(ifs,buf)
)//運用全域性函式getline,需要輸入流物件,以及寫入的物件
//第四種
char c;
while
((c = ifs.
get())
!=eof
)//eof是檔案結束的標識,用於判斷是否讀完
//get(),每次唯讀乙個字元
ifs.
close()
;}
二進位制檔案
以二進位制的方式對檔案進行讀寫操作
開啟方式要指定為ios::binary
寫檔案二進位制檔案寫檔案主要利用流物件呼叫成員函式write
函式原型:ostream write(const char * buffer,int len);
引數解釋:字元指標buffer指向記憶體中一段儲存空間,len是讀寫的字元數
#include
class
person
void
test1()
; ofs.
write((
const
char*)
&p,sizeof
(person));
//將p指標強轉為char型別
ofs.
close()
;}
讀檔案
二進位制當時讀檔案主要利用流物件呼叫成員函式read
函式原型:istream& read(char * buffer, int len);
引數解釋:字元指標buffer指向記憶體中一段儲存空間,len是讀寫的位元組數
#include
class
person
void
test1()
person p;
ifs.
read((
char*)
&p,sizeof
(person));
//讀取資料時,需要準備儲存的記憶體空間,位址需要強轉為char型,以及儲存空間的大小
ifs.
close()
;}
模板
模板就是建立通用的模具,大大提高復用性
特點:模板不可以直接使用,它只是乙個框架
模板的通用並不是萬能的
函式模板
c++另一種程式設計思想成為泛型程式設計,主要利用的技術就是模板
c++提供兩種模板機制函式模板和類模板
作用:建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的型別來代表
語法:template(typename t)
函式宣告或定義
解釋:template 宣告建立模板
typename 表明其後面的符號是一種資料型別,可以用class代替
t 通用的資料型別,名稱可以替換,通常為大寫字母
template
<
typename t>
//宣告乙個模板,t是乙個通用的資料型別
void
swap
(t &a,t &b)
//第一種 自動型別推導
swap
(a,b)
;//編譯器在實參傳入形參的過程中,形參自動推導出t的資料型別
//第二種 顯示指定型別
swap<
int>
(a,b)
;//表示模板中的t是int型別
函式模板的注意事項
1.自動型別推導,必然推導出一致的資料型別t才可以使用
2.模板必須要確定出t的資料型別,才可以使用
template
<
class
t>
//typename和class都可以
void
func()
func()
;//錯誤,無法自動推導出t的資料型別,模板就無法呼叫
func<
int>()
;template
<
class
t>
void
swap
(t&a,t&b)
int a =10;
char c =
'c';
swap
(a,c)
;//錯誤,資料型別不統一
模板練習
建立乙個能對不同資料型別的資料進行排序的模板
排序演算法為選擇排序
利用char陣列和int陣列測試
template
<
typename t>
void
swap
(t &a,t &b)
template
<
typename t>
void
sort
(t array,
int len)}if
(max != i)}}
void
test1()
;int num =
sizeof
(array1)
/sizeof
(int);
sort
(array1,num)
}
C 學習筆記15
1.平台互操作性和不安全的 c 功能強大,但有些時候,它的表現仍然有些 力不從心 所以我們只能摒棄它所提供的所有安全性,轉而退回到記憶體位址和指標的世界。c 通過3種方式對此提供支援。1 第一種方式是通過平台呼叫 platform invoke,p invoke 來呼叫非託管 dll所公開的api。...
引用(C 學習筆記 15)
一 引用的作用 建立引用的作用是為變數另起乙個名字,變數的引用通常被認為是變數的別名。對變數宣告乙個引用,並不另外開闢記憶體單元,變數 i 和引用 j 占用記憶體的同一位置,當 i 變化時,j 也隨之變化,反之亦然。二 引用的格式 型別 引用名 已定義的變數名 注意 1 在宣告引用時,必須立即對它進...
學習筆記15
響應式 media 不同的大小 執行不行的css 寫上 float left 預設不會屏佔百分百,寫上多少就是多少 但是無法滿足全屏鋪滿 min left 900x 的意思是 當寬度小於這個值時候 底部出現滾動條 position absolute 這麼寫 會鋪滿螢幕 只有加上 left right...