1. 程式人生 > >C++深度解析 初探C++標準庫 --- cin,cout,std(31)

C++深度解析 初探C++標準庫 --- cin,cout,std(31)

C++深度解析 初探C++標準庫 --- cin,cout,std(31)

 

 

 

過載左移操作符

示例程式:

#include <stdio.h>

const char endl = '\n';

class Console
{
public:
    Console& operator << (int i)
    {
        printf("%d", i);
        
        return *this;
    }
    Console& operator << (char c)
    {
        printf("%c", c);
        
        return *this;
    }
    Console& operator << (const char* s)
    {
        printf("%s", s);
        
        return *this;
    }
    Console& operator << (double d)
    {
        printf("%f", d);
        
        return *this;
    }
};

//全域性物件
Console cout;

int main()
{
    cout << 1 << endl;
    cout << "D.T.Software" << endl;
    
    double a = 0.1;
    double b = 0.2;
    
    cout << a + b << endl;
    
    return 0;
}

結果如下:

 

 

 

C++標準庫

C++標準庫並不是C++語言的一部分。

C++標準庫是由類庫函式庫組成的集合。

C++標準庫中定義的類和物件都位於std名稱空間中。

C++標準庫的標頭檔案都不帶.h字尾

C++標準庫涵蓋了C庫的功能

 

 

 

C++編譯環境組成

 

 

 

C++標準庫預定義了多數常用的資料結構

- <bitset>            -<set>            -<cstdio>

-<deque>            -<stack>        -<cstring>

-<list>                  -<vector>       -<cstdlib>

-<queue>            -<map>         -<cmath>

 

 

 

示例程式:(C++標準庫中的C庫相容)

#include <stdio.h>  // C++編譯器廠商為了推廣自己的產品,所提供的C相容庫
#include <string.h> // C++編譯器廠商為了推廣自己的產品,所提供的C相容庫
#include <stdlib.h> // C++編譯器廠商為了推廣自己的產品,所提供的C相容庫
#include <math.h>   // C++編譯器廠商為了推廣自己的產品,所提供的C相容庫

#include <cstdio>  // C++標準庫的相容模組
#include <cstring> // C++標準庫的相容模組
#include <cstdlib> // C++標準庫的相容模組
#include <cmath>   // C++標準庫的相容模組

using namespace std;

int main()
{
    printf("Hello world!\n");    
    
    char* p = (char*)malloc(16);
    
    strcpy(p, "D.T.Software");
    
    double a = 3;
    double b = 4;
    double c = sqrt(a * a + b * b);
    
    printf("c = %f\n", c);
    
    free(p);
    
    return 0;
}

結果如下:

 

 

 

C++中的輸入和輸出,cout 和 cin

示例程式:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    cout << "Hello world!" <<endl;
    
    double a = 0;
    double b = 0;
    
    cout << "Input a: ";
    cin >> a;
    
    cout << "Input b: ";
    cin >> b;
    
    double c = sqrt(a * a + b * b);
    
    cout << "c = " << c << endl;
    
    return 0;
}

結果如下:

 

 

 

小結

C++標準庫是由類庫函式庫組成的集合

C++標準庫包含經典演算法資料結構的實現

C++標準庫涵蓋了C庫的功能

C++標準庫位於std名稱空間