開啟檔案
檔名
filebuf::openprot; //預設的相容共享方式
filebuf::sh_none; //獨佔,不共享
filebuf::sh_read; //讀共享
filebuf::sh_write; //寫共享
開啟檔案的方法
呼叫建構函式時指定檔名和開啟模式
ifstream f(「d:\12.txt」,ios::nocreate); //預設以 ios::in 的方式開啟檔案,檔案不存在時操作失敗
ofstream f(「d:\12.txt」); //預設以 ios::out的方式開啟檔案
fstream f(「d:\12.dat」,ios::in|ios::out|ios::binary); //以讀寫方式開啟二進位制檔案
使用open成員函式
fstream f;
f.open(「d:\12.txt」,ios::out); //利用同一物件對多個檔案進行操作時要用到open函式
檢查是否成功開啟
成功:
if(f) //對ifstream、ofstream物件可用,fstream物件不可用。
if(f.good())
失敗:
if(!f) // !運算子已經過載
if(f.fail())
讀寫操作
使用<>運算子
只能進行文字檔案的讀寫操作,用於二進位制檔案可能會產生錯誤。
使用函式成員 get、put、read、write等
經常和read配合使用的函式是gcount(),用來獲得實際讀取的位元組數。
讀寫二進位制檔案注意事項
開啟方式中必須指定ios::binary,否則讀寫會出錯
用read\write進行讀寫操作,而不能使用插入、提取運算子進行操作,否則會出錯。
使用eof()函式檢測檔案是否讀結束,使用gcount()獲得實際讀取的位元組數
關閉檔案
使用成員函式close,如:
f.close();
利用析構函式
物件生命期結束時會檢查檔案是否關閉,對沒有關閉的檔案進行關閉操作。
隨機讀寫檔案
通過移動檔案讀寫指標,可在檔案指定位置進行讀寫。
seekg(絕對位置); //絕對移動, //輸入流操作
seekg(相對位置,參照位置); //相對操作
tellg(); //返回當前指標位置
seekp(絕對位置); //絕對移動, //輸出流操作
seekp(相對位置,參照位置); //相對操作
tellp(); //返回當前指標位置
參照位置:
ios::beg = 0 //相對於檔案頭
ios::cur = 1 //相對於當前位置
ios::end = 2 //相對於檔案尾
1.直接流輸出兩個字串
#include
#include
using namespace std;
int main()
return
0;}
程式輸出的檔案:
2.整數資料的輸入
#include
#include
using namespace std;
int main()
out<< endl;}}
out.close();
return
0;}
程式輸出:
3.字元資料的輸入
字元的輸出方式以put(ch)為存入語句,讀取語句為get(ch)
#include
#include
using
namespace
std;
int main()
out.close();
return
0;}
程式輸出:
1.檔案使用方式
檔案使用方式 意 義
「rt」 唯讀開啟乙個文字檔案,只允許讀資料
「wt」 只寫開啟或建立乙個文字檔案,只允許寫資料
「at」 追加開啟乙個文字檔案,並在檔案末尾寫資料
「rb」 唯讀開啟乙個二進位制檔案,只允許讀資料
「wb」 只寫開啟或建立乙個二進位制檔案,只允許寫資料
「ab」 追加開啟乙個二進位制檔案,並在檔案末尾寫資料
「rt+」 讀寫開啟乙個文字檔案,允許讀和寫
「wt+」 讀寫開啟或建立乙個文字檔案,允許讀寫
「at+」 讀寫開啟乙個文字檔案,允許讀,或在檔案末追加數 據
「rb+」 讀寫開啟乙個二進位制檔案,允許讀和寫
「wb+」 讀寫開啟或建立乙個二進位制檔案,允許讀和寫
「ab+」 讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料
從鍵盤輸入幾行字元,寫入乙個檔案
#include
#include
using
namespace
std;
int main()
printf("input some strings:\n");
ch = getchar();
while (ch != eof)
printf("\n");
fclose(fp);
return
0;}
程式輸入:i like c++
**** c++
code c++
ctrl+z
程式輸出:
With open函式開啟檔案的各種方式
with open path file type encoding,as f f.read size f.write content type info r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔...
java獲取路徑的各種方式
利用system.getproperty 函式獲取當前路徑 system.out.println system.getproperty user.dir 指定了當前的路徑使用file提供的函式獲取當前路徑 file directory newfile 設定為當前資料夾 trycatch except...
Numpy 拼接陣列的各種方式
總結 import numpy as np a np.array 1,2,3 b np.array 5,6,7 拼接乙個陣列和數值 array 1,2,3,4 拼接兩個陣列 array 1,2,3,5,6,7 拼接列表成為陣列 array 1,2,3,4,5,6,7,8,9 不同座標軸方向的拼接 a...