挑戰(zhàn)30天C++入門極限:C++的iostream標準庫介紹以及對左移與右移運算符的重載3

字號:

C語言提供了格式化輸入輸出的方法,C++也同樣,但是C++的控制符使用起來更為簡單方便,在c++下有兩中方法控制格式化輸入輸出。
    1.有流對象的成員函數(shù)。
    例如,下列程序以成員函數(shù)的方式控制輸出的精度:
    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必出處和作者
    #include
    using namespace std;
    int main()
    {
     float pi=3.14159f;
     cout< cout.precision(2);
     cout< system("pause");
    }
    2.使用C++輸入輸出控制符,控制符是在拖文件iomanip.h中定義的對象,與成員函數(shù)有一樣的效果,控制符不必像成員函數(shù)學(xué)那樣單獨調(diào)用,它可以直接插入流中使用。
    例如,下列程序以控制符的方式控制輸出的精度:
    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必出處和作者
    #include
    #include
    using namespace std;
    int main()
    {
     float pi=3.14159f;
     cout< cout< cout< system("pause");
    }
    下表我們列出了一些比較常用的控制符號,由于篇幅有限讀者請根據(jù)自己的需要查閱相關(guān)書籍:
    控制符 描述
    Dec 置基數(shù)為10
    Hex 置基數(shù)為16
    Oct 置基數(shù)為8
    Endl 插入換行符,并刷新流
    Ends 插入空字符
    setfill? 設(shè)填充字符為c
    setprecision(n) 設(shè)顯示小數(shù)精度為n位
    setw(n) 設(shè)域?qū)挒閚個字符
    setiosflags(ios::fixed) 固定的浮點顯示
    setiosflags(ios::scientific) 科學(xué)計數(shù)法
    setiosflags(ios::left) 左對齊
    setiosflags(ios::right) 右對齊
    setiosflags(ios::skipws) 忽略前導(dǎo)空白
    setiosflags(ios::uppercase) 16進制數(shù)大寫輸出
    setiosflags(ios::lowercase) 16進制數(shù)小寫輸出
    對于iostream標準庫來說包含了眾多的成員函數(shù),各函數(shù)都有其自身的作用,篇幅問題筆者在這里不能一一說明例舉,由于標準輸入對象cin提供輸入的時候會自動以空格作為分界,給我們獲取一行帶有空格的完整字符串帶來了困難,在這里補充一個非常用有的成員函數(shù)----getline()。
    其函數(shù)原型為:
    getlin(chiar *str,int size,char='\n');
    第一個參數(shù)是字符數(shù)組,用于存放整行文本,第二個參數(shù)讀取的字符個數(shù),第三個參數(shù)為作為分界界限的字符,默認識是\n,換行符。
    示例代碼如下:
    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權(quán),如要轉(zhuǎn)載,請務(wù)必出處和作者
    #include
    #include
    using namespace std;
    int main()
    {
     char str[100];
     cin.getline(str,sizeof(str),'\n');
     cout< system("pause");
    }
    通過上面內(nèi)容的學(xué)習(xí),我們對i/o有了一些基本點基本的認識,現(xiàn)在是該切入正題的時候了,詳細學(xué)習(xí)一下,如何重載左移與右移操作符。