C++标准输入流
C++標準輸入流
開發工具與關鍵技術:C++、VisualStudio 作者:何任賢 撰寫時間:2019年07月06日 C++程序中,對數據的輸出輸入是以字節流實現的, 應用程序對字節序列作 出各種數據解釋, I/O系統的任務就是在內存和外部設備之間穩定可靠地傳 輸數據和解釋數據。流類對象可以建立和刪除,可以從流中獲取數據和向流添加數據,c++的輸出流都是以字節形式進行數據傳遞。
c++中我們常用的是標準流,標準流是C++預定義的對象,提供內存與外部設備進行數據交互功能,流的操作是流類的公有成員函數。
我們在操作標準流的時候一般是用到iostream.h頭文件,它包含所有的標準輸入流操作。
流庫(stream library)是用繼承方法建立的輸入輸出類庫, 流庫具有兩個平行的基類:streambuf 和 ios 類,所有流類均以兩者之一作為基類,意思是c++中所有輸出輸入流的基類都是streambuf 和 ios 類,而標準流的基類就是ios類。
標準輸入流關鍵字是cin是istream 類的對象,而istream 類則是在iostream.h頭文件中所以我們在使用標準流是需要包含iostream.h頭文件,一般情況下連接鍵盤,cin重定向方法:把程序編譯成 .exe文件,在 DOS 狀態下以命令參數形式對標準流重定向。
istream類的公有成員函數,即輸入流操作:
函數 功能
read() 無格式輸入指定字節數
get() 從流中提取字符,包括空格
getline() 從流中提取一行字符
ignore() 提取并丟棄流中指定字符
peek() 返回流中下一個字符,但不從流中刪除
gcount() 統計最后輸入的字符個數
狀態標志 值 含義
skipws 0X0001 跳過輸入中的空白
dec 0X0010 轉換基制為十進制
oct 0X0020 轉換基制為八進制
hex 0X0040 轉換基制為十六進制
下面是對上面的一些函數和標志字的演示:
#include
using namespace std;
void main()
{
char b;
char c[15] = {0};
int d = 0;
d = cin.peek();
cout << “peek函數:” << d << “\n”;
cin.get(b);
cout << “get函數:” << b << “\n”;
cin.ignore(5);
d = cin.peek();
cout << “peek函數:” << d << “\n”;
cin >> c;
cout << “ignore函數:” << c << “\n”;
d = cin.gcount();
cout << “gcount函數:” << d << “\n”;
cin.setf(ios::oct, ios::basefield); cin >> d;
cout << “oct標志字” << d << “\n”;
cin.setf(ios::hex, ios::basefield); cin >> d;
cout << “hex標志字” << d << “\n”;
}
總結
- 上一篇: 产品经理必看:终于有人把数据指标讲明白了
- 下一篇: C++企业链表