C 入門 C 輸入輸出和檔案操作

2021-10-19 07:49:53 字數 2720 閱讀 3723

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物件,為其命名。...