C語言提供了格式化輸入輸出的方法,C++也同樣,但是C++的控制符使用起來更為簡單方便,在c++下有兩中方法控制格式化輸入輸出。
1.有流對象的成員函數。
例如,下列程序以成員函數的方式控制輸出的精度:
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
int main()
{
float pi=3.14159f;
cout<<pi<<endl;
cout.precision(2);
cout<<pi<<endl;
system("pause");
}
2.使用C++輸入輸出控制符,控制符是在拖文件iomanip.h中定義的對象,與成員函數有一樣的效果,控制符不必像成員函數學那樣單獨調用,它可以直接插入流中使用。
例如,下列程序以控制符的方式控制輸出的精度:
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
float pi=3.14159f;
cout<<pi<<endl;
cout<<setprecision(4);
cout<<pi<<endl;
system("pause");
}
下表我們列出了一些比較常用的控制符號,由於篇幅有限讀者請根據自己的需要查閱相關書籍:
對於iostream標准庫來說包含了眾多的成員函數,各函數都有其自身的作用,篇幅問題筆者在這裡不能一一說明例舉,由於標准輸入對象cin提供輸入的時候會自動以空格作為分界,給我們獲取一行帶有空格的完整字符串帶來了困難,在這裡補充一個非常用有的成員函數----getline()。
其函數原型為:
getlin(chiar *str,int size,char='
');
第一個參數是字符數組,用於存放整行文本,第二個參數讀取的最大字符個數,第三個參數為作為分界界限的字符,默熟悉是
,換行符。
示例代碼如下:
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char str[100];
cin.getline(str,sizeof(str),'
');
cout<<str<<endl;
system("pause");
}
通過上面內容的學習,我們對i/o有了一些基本點基本的熟悉,現在是該切入正題的時候了,具體學習一下,如何重載左移與右移操作符。
先說左移(<<)操作符,也就是我們常說的輸出操作符。
對於自定義類來說,重載左移操作符的方法我們常使用類的友元方式進行操作。
示例代碼如下:
//程序作者:管寧
//站點:www.cndev-lab.com
//所有稿件均有版權,如要轉載,請務必聞名出處和作者
#include <iostream>
using namespace std;
class Test
{
public:
Test(int age = 0,char *name = "