C++ IOS::tie() 函式



C++ 的std::ios::tie()函式用於同步輸入和輸出流。預設情況下,cin 和 cout 是繫結的,這意味著 cin 在讀取輸入之前會自動重新整理 cout,從而使輸出保持最新。tie() 函式允許您手動繫結或解除繫結流,從而增強對輸入輸出行為的控制。

例如,使用 cin.tie(nullptr) 可以透過停用自動重新整理來提高效能,而 cin.tie(&cout) 則重新建立繫結。

語法

以下是 std::ios::tie() 函式的語法。

ostream* tie() const;	
ostream* tie (ostream* tiestr);

引數

  • tiestr - 表示一個輸出流物件。

返回值

它返回一個指向呼叫之前繫結的流物件的指標,如果流未繫結,則返回一個空指標。

異常

如果丟擲異常,則流處於有效狀態。

資料競爭

訪問或修改流物件。

同時訪問同一個流物件可能會導致資料競爭。

示例

在以下示例中,我們將考慮 tie() 函式的基本用法。

#include <iostream>
int main()
{
    std::cin.tie(&std::cout);
    std::cout << "Enter A Number: ";
    int x;
    std::cin >> x;
    std::cout << "Entered Number : " << x << std::endl;
    return 0;
}

輸出

以下是上述程式碼的輸出 -

Enter A Number: 121
Entered Number : 121

示例

讓我們看看下面的例子,其中 cin 繫結到 cerr,確保錯誤訊息在使用者提供輸入之前可見。

#include <iostream>
int main()
{
    std::cin.tie(&std::cerr);
    std::cerr << "Error before input." << std::endl;
    std::cout << "Enter A Number: ";
    int x;
    std::cin >> x;
    std::cout << "Entered Number : " << x << std::endl;
    return 0;
}

輸出

如果我們執行上述程式碼,它將生成以下輸出 -

Error before input.
Enter A Number: 132
Entered Number : 132
ios.htm
廣告

© . All rights reserved.