輸入輸出
- I/O庫常用的流類
- 標準輸出流對象
- 文件操作與文件流
I/O庫常用的流類
ios:
抽象基類,由ios派生出類istream和類ostreamistream:
通用輸入流類,輸入操作ostream:
通用輸出流類iostream:
通用輸入輸出流類,由以上兩類派生ifstream:
輸入文件流類,由istream派生ofstream:
輸出文件流類,由ostream所派生fstream:
輸入輸出文件流類,由iostream所派生
標準輸出流對象
1、COUT
cout是console output的縮寫,是輸出流類ostream的對象。
2、輸出流類成員函數put()
此成員函數的使用格式一般爲:
輸出流對象.put(ch)。
標準輸入流對象
1、cin
cin是類istream的對象
採用輸入運算符“>>”輸入數據時,一般會自動跳過空格、tab鍵換行符等空白字符。
2、輸入流常用成員函數
1)get()
用於輸入單個字符:輸入流對象.get()
若遇到輸入流中的文件結束符,則函數值返回文件結束標誌EOF。
2) getline()
用於從輸入流對象中輸入一行字符:輸入流對象.getline(字符指針,字符個數n)
如果輸入的一行字符中,字符個數小於n,則字符指針指向的字符數組空間儲存實際輸入的字符
3) eof()函數
表示”文件結束“:輸入流對象.eof()
讀取數據時,如果當前字節爲文件結束符,eof()函數值爲非零值,否則爲0。
4) putback()函數
putback() 函數將前面用get() 函數從輸入流對象中輸入的字符ch 返回到輸入流對象:
輸入流對象.putback(ch)
#include<iostream>
using namespace std;
char GetChar(istream &in=cin)
{
char ch;
while(!in.eof() && (ch=in.get()) == ' ')
return ch;
}
int main()
{
char ch;
cout << "請輸入一行字符:" <<endl;
ch = GetChar();
while(ch != '\n' && ch != EOF)
{
cout.put(ch);
ch=GetChar();
}
cout << endl;
return 0;
}
文件操作與文件流
1、常用文件操作方式
ios::in :
以輸入的方式打開文件,如果文件不存在將出錯,打開後文件當前位置在文件開始處。ios::out :
以輸出方式打開文件,如果文件不存在,將建立一個新文件,否則將清空文件,打開後文件當前位置在文件開始處。ios::app :
以追加方式打開,如果文件已存在,則不清除原有內容,否則編譯錯誤,打開後文件當前位置在文件結束處。ios::binary :
以二進制文件方式打開文件,否則默認ASCII方式打開文件
2、打開文件
使用方式:
1) 文件流對象.open(磁盤文件名,文件操作方式)
ofstream outFile;
outFile.open("C:\\new\\mybook.txt",ios::out);
2) 在文件流對象時指定參數
ofstream outFile("mybook.txt",ios::out);
- 如果打開失敗,文件流成員函數fail()返回非0值
3、關閉文件
- 使用方式:文件流對象.close()