fstream file;
則file.get( ) ,file.getline( ) ,file.read( )與file.write()的第一個參數*p,array[n],ch,int,double,string s資料型態表示格式.
1.put( )只有一個參數,寫入單一字元file.put('ch')格式,而無兩個參數的寫入字串file.put(*p,n)格式.
2.string類別物件s僅有輸入連續字串的cin>>標準輸入格式,和不須連續字串輸入getline(cin,s);與getline(file,s);格式,
而無get(cin,s) ,put(cin,s) ,read(cin,s) ,write(cin,s) 或 get(file,s) ,put(file,s) ,read(file,s),write(file,s ) 格式)
get(), read( )與write()的第一個參數*p,array[n],ch,int,double,string s資料型態表示格式.
一般指標*p無法使用read()成員函式,以讀取檔案資料內容,作為指標所指向內容.
一般指標*p雖可以有指向字串格式(字串設定給指標),但無法使用write()成員函式,將指標所指向內容寫入檔案中,因此一般指標無法作為get(), read( )與write()的第一個參數,需將一般指標宣告為指向動態記憶體(char *p=new char;或char *p=new char[n];)的動態指標.
|
表示格式1 |
表示格式2 |
表示格式3 |
*p指標 |
p |
(char*)p |
|
char array[n] |
array |
(char*)array |
(char*)&array |
struct var |
var.name |
(char*)var.name |
(char*)&var.name |
ch字元 |
&ch |
(char*)&ch |
|
int |
|
(char*)&i |
write()無法顯示 |
double |
|
(char*)&d |
write()無法顯示 |
string s |
無法執行 |
|
|
get()與getline()成員函式均是以字串格式讀取,故當第二個size參數設定為1時,僅能存放一個字串結束字符'\0',因此若要存放實際字元則需將第二個參數設定為1以上.
當使用get()成員函式,且第一個參數為i整數(或double)變數,則讀取檔案內容給i整數(或double)變數時,顯示一串奇怪數字.
對string 類別來說( //get(),put()??????? )
串流物件cin與file有getline()函式可執行.
但沒有read( )與write( )函式可執行.
getline()有getline(cin,s);與getline(file,s),但
read( )沒有read(cin,s)與read(file,s)
write()沒有write(cin,s)與write(file,s)
put()函式僅有寫入單一字元格式(file.put('ch');),get()除了有讀取單一字元格式,還有讀取字串格式
put()僅能有file.put('ch');與cout.put('ch');取用格式.
無法寫成cout<<"cout.put(c) = "<<cout.put(c)<<endl;格式???????