C++ istream::sync() 函数



C++ 的std::istream::sync()函数用于将输入流与关联的输入序列同步。调用此函数时,它会清除输入缓冲区,确保任何未读取的字符都被丢弃,并且流与底层输入设备同步。

语法

以下是 std::istream::sync() 函数的语法。

int sync();

参数

它不接受任何参数。

返回值

如果函数失败,要么是因为没有流缓冲区对象与流关联(rdbuf 为空),要么是因为对其 pubsync 成员的调用失败,则返回 -1;否则,返回零,表示成功。

异常

如果抛出异常,则对象处于有效状态。

数据竞争

修改流对象。

示例

在下面的示例中,我们将考虑 sync() 函数的基本用法。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("Tutorials Point");
    a.sync();
    std::string b;
    a >> b;
    std::cout << "Result : " << b << std::endl;
    return 0;
}

输出

以下是上述代码的输出:

Result : Tutorials

示例

考虑以下示例,我们将使用 std::cin 进行同步。

#include <iostream>
int main()
{
    std::cin.sync();
    std::string a;
    std::cout << "Enter Input : ";
    std::cin >> a;
    std::cout << "Welcome To , " << a << "." << std::endl;
    return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

Enter Input : TutorialsPoint
Welcome To , TutorialsPoint.

示例

让我们看一下下面的示例,我们将刷新 std::cin 缓冲区。

#include <iostream>
#include <sstream>
int main()
{
    std::istringstream a("Hi 112");
    std::string b;
    int x;
    a >> b;
    a.sync();
    a >> x;
    std::cout << "Text: " << b << " , Number: " << x << std::endl;
    return 0;
}

输出

上述代码的输出如下:

Text: Hi , Number: 112
istream.htm
广告
© . All rights reserved.