2.流操縱運算元
二、檔案讀寫
3.關閉檔案
①與輸入輸出流操作相關的類:
②標準流物件:
輸出流物件:
③判斷輸入流結束:
可以用如下方法判輸入流結束:
int x;
while
(cin >> x)
④istream類的成員函式:istream &
getline
(char
* buf,
int bufsize)
;
從輸入流中讀取bufsize-1個字元到緩衝區buf,或讀到碰到『\n』為止(哪個先到算哪個)。
istream &
getline
(char
* buf,
int bufsize,
char delim)
;
從輸入流中讀取⑤重定向輸入輸出:bufsize-1
個字元到緩衝區buf
,或讀到碰到delim
字元為止(哪個先到算哪個)。兩個函式都會自動在buf
中讀入資料的結尾新增』\0』。,』\n』或delim
都不會被讀入buf
,但會被從輸入流中取走。如果輸入流中 『\n』或delim
之前的字元個數達到或超過了bufsize
個,就導致讀入出錯,其結果就是:雖然本次讀入已經完成,但是之後的讀入就都會失敗了。可以用
if(!cin.getline(…))
判斷輸入是否結束
使用流操縱運算元需要#include
①整數流的基數:
流操縱運算元dec(十進位制),oct(八進位制),hex(十六進製制)
int n =10;
cout << n << endl;
cout << hex << n <<
"\n"
<< dec << n <<
"\n"
<< oct << n << endl;
輸出結果:10a②控制浮點數精度的流操縱運算元:1012
功能:定點&非定點:
③設定域寬的流操縱運算元:
④使用者自定義流操縱運算元:
ostream &
tab(ostream &output)
cout <<
"aa"
<< tab <<
"bb"
<< endl;
輸出:aa____bb因為 iostream 裡對 << 進行了過載(成員函式)
ostream &
operator
<<
( ostream &
(* p )
( ostream &))
;
該函式內部會呼叫p所指向的函式,且以 *this 作為引數hex 、dec 、oct 都是函式
方法二:可以先建立ofstream物件,再用 open函式開啟
ofstream fout;
fout.
open
("test.out"
, ios::out | ios::binary)
;
判斷開啟是否成功:
if( !fout)
檔名可以給出絕對路徑,也可以給相對路徑。沒有交代路徑資訊,就是在當前資料夾下找檔案
絕對路徑和相對路徑:
①檔案的讀寫指標:
標識檔案操作的當前位置, 該指標在**,讀寫操作就在**進行。location 可以為負值
②字元檔案的讀寫:
因為檔案流也是流,所以流的成員函式和流操作運算元也同樣適用於檔案流。
例:將檔案 in.txt 裡面的整數排序後,輸出到out.txt
#
include
#include
#include
#include
using
namespace std;
intmain()
③二進位制檔案的讀寫:
導致 linux, mac os 文字檔案在windows 記事本中開啟時不換行
顯式關閉檔案:
ifstream fin
("test.dat"
, ios::in)
;fin.
close()
;ofstream fout
("test.dat"
, ios::out)
;fout.
close()
;
【知識索引】【c++入門】 C 輸入輸出和檔案控制
1.流和緩衝區 c 程式把輸入輸出看作位元組流。輸入時,程式從輸入流中抽取位元組,輸出時,程式將位元組插入到輸出流中。2.c 的iostream檔案將自動建立8個流物件 4個用於窄字元流,4個用於寬字元流 標準輸入裝置 cin 標準輸入流 wcin 寬字元型別 標準輸出裝置 cout 標準輸出流 w...
golang 輸入輸出和檔案操作
type reader inte ce 當成功讀取 n 0 位元組後,如果遇到錯誤或者檔案結尾也會返回錯誤輸入流結束時err eof當返回的 n 0 時,err不應該是nil type writer inte ce ioutil.readfile filename string byte error...
c 入門 簡單檔案輸入 輸出
使用cin輸入時,程式將輸入看成一系列位元組,其中每個字都被解釋為字元編碼。不管目標資料型別是什麼,輸入一開始都是字元資料 文字資料。使用cin來輸入不同型別的資料是行不通的,所以我們要尋找新的方式輸入資料。c 使用了乙個類似於cout的東西來作為檔案輸入。申明自己的ofstream物件,為其命名。...