1.檔案一般指儲存在外部介質上資料的集合c++中輸入輸出常量是在ios類中定義的,他們是列舉常量,有多種選擇2.作業系統是以檔案為單位對資料進行管理的
3.根據檔案中資料的組織形式,可分為ascii檔案和二進位制檔案
方式作用
ios::in
以輸入的方式開啟檔案
ios::out
以輸出的方式開啟檔案(這是預設方式),如果已有此名字的檔案,則將其原有的內容全部清除
以輸出的方式開啟檔案,寫入的資料新增在檔案末尾
ios:ate
開啟乙個已有的檔案,檔案指標指向檔案末尾
ios::trunc
ios::binary
以二進位制開啟乙個檔案,如果不指定此方式則預設為ascii方式
ios::nocreate
開啟乙個已有的檔案,如果檔案不存在,則開啟失敗
ios::noreplace
如果檔案不存在則建立新檔案,如果檔案存在則操作失敗
ios::in|ios::out
已輸入和輸出的方式開啟乙個檔案,檔案可讀可寫
ios::out|ios::binary
以二進位制方式開啟乙個輸出檔案
ios::in|ios::binary
以二進位制方式開啟乙個輸入檔案
下面是**,把10個數字以ascii寫入乙個檔案
#include
#include//從iostream派生而來,用來支援對磁碟檔案的輸入輸出
using
namespace
std;
int main()
int i,a[10];
for(i=0;i<10;i++)
outfile.close();
return
0;}
輸入10個數字
建立了乙個檔案
裡面寫入了數字
讀檔案
#include
#include//從iostream派生而來,用來支援對磁碟檔案的輸入輸出
二進位制檔案除了可以作為輸入檔案外也可以作為輸出檔案。
對二進位制檔案的操作主要是通過istream類的成員函式read和write來實現
原型為
istream&read(char*buffer,int len);
ostream&write(const char*buffer,intlen);
a.write(p1.50);
b.read(p2,30);
a是輸出檔案流物件,從p1指向的單元開始的50個位元組的內容不加轉換的寫到與a關聯的磁碟中。
b是輸入檔案流物件。從b所關聯的磁碟檔案中讀取30個位元組(或遇到eof結束),存放到p2裡。
#include
#include//從iostream派生而來,用來支援對磁碟檔案的輸入輸出
using
namespace
std;
struct student
;int main()
;ofstream outfile("stu.bin",ios::binary);
if(!outfile)
int i;
for(i=0;i<2;i++)
outfile.close();
/***************************/
student stu2[2];
ifstream infile("stu.bin",ios::binary);
if(!infile)
for(i=0;i<2;i++)
for(i=0;i<2;i++)
在磁碟檔案中有乙個檔案讀寫位置標記,檔案每讀取或者寫入乙個位元組,位置標記就向後移動乙個位元組。對於二進位制檔案,允許對位置標記進行控制,使他按照使用者的意圖進行移動。
成員函式
作用gcount()
得到最後一次輸入所讀取的位元組數
tellg()
得到輸入檔案位置標記的當前位置
tellp()
得到輸出檔案位置標記的當前位置
seekg(檔案中的位置)
將輸入檔案位置標記移動到指定的位置
seekg(位移量,參考位置)
以參考位置為基礎移動若干位元組
seekp(檔案中的位置)
將輸c出檔案位置標記移動到指定的位置
seekp(位移量,參考位置)
以參考位置為基礎移動若干位元組
結尾是p表示 put 指輸出檔案
結尾時g表示 get 指輸入檔案
參考位置
意義ios::beg
檔案開頭(begin),預設值。
ios::cur
位置標記當前的位置(current)
ios::end
檔案末尾
下面實現對三個學生資訊
1.寫入磁碟檔案
2.讀出第二個學生的資訊
3.修改第三個學生的資訊
4.顯示所有學生的資訊
#include#include//從iostream派生而來,用來支援對磁碟檔案的輸入輸出
#include//strcpy要用
using namespace std;
#define n 3
struct student
;int main()
;fstream iofile("stu.dat",ios::in|ios::out|ios::binary);
if(!iofile)
/******************寫入磁碟******************/
int i;
for(i=0;ichar*)&stu[i],sizeof(stu[i]));
}/**************讀第二個學生的資訊*************/
student stu2;
iofile.seekg(2*sizeof(stu[0]),ios::beg);//移動位置
iofile.read((char*)&stu2,sizeof(stu2));//讀取
cout**************修改第三個學生的資訊*************/
strcpy(stu[2].name,"caixianyu");
stu[2].age=21;
iofile.seekp(2*sizeof(stu[0]),ios::beg);//移動位置
iofile.write((char*)&stu[2],sizeof(stu[2]));//寫入
/********************列印所有資訊********************/
iofile.seekg(ios::beg);//移動位置
student stu_out;
for(i=0;i<3;i++)
SQL針對資料檔案的增刪改
建立資料庫 create database database name onprimary name database name filename database address file name.mdf size maxsize filegrowth 注 關於primary的解釋 這個括號內的...
開啟檔案,寫入資料(檔案操作)
檔案的操作 開啟再關閉 include includeusing namespace std void main double x,y ifstream infile ofstream outfile infile.open c users good desktop 我的旅途 專案五十四 檔案操作 ...
C 對資料的常用操作
在做專案的時候,少不了對資料的新增,刪除,修改等操作,有時候感覺到很簡單,但是如果要考慮到很多問題的話,那麼就不是那麼簡單了,因為需要考慮到很多的問題和因素,下面是樹形結構上採用資料來源方式對資料進行操作,感覺到還可以,所以記下來,以後對自己有用。新增物料分類的方法 private void bar...