C++ istream::gcount() 函数



C++ 的std::istream::gcount()函数用于返回在流上执行的最后一次非格式化输入操作提取的字符数。它用于在诸如read()之类的函数之后确定实际读取了多少个字符。

gcount() 函数不修改流的状态,并返回 std::streamsize 类型的数值。

语法

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

streamsize gcount() const;

参数

它不接受任何参数。

返回值

此函数返回对象上执行的最后一次非格式化输入操作提取的字符数。

异常

如果抛出异常,流中没有任何更改。

数据竞争

访问流对象。

示例

让我们来看下面的例子,我们将读取字符。

#include <iostream>
int main()
{
    std::cout << "Enter Characters: ";
    char x[5];
    std::cin.get(x, 4);
    std::cout << "Characters read: " << std::cin.gcount() << std::endl;
    std::cout << "Buffer Contents: " << x << std::endl;
    return 0;
}

输出

以上代码的输出如下:

Enter Characters: abcdefgh
Characters read: 3
Buffer Contents: abc

示例

考虑下面的例子,我们将读取整数作为字符串。

#include <iostream>
int main()
{
    std::cout << "Enter an Integer: ";
    char buffer[5];
    std::cin.getline(buffer, 3);
    std::cout << "Characters read: " << std::cin.gcount() << std::endl;
    std::cout << "Buffer Contents: " << buffer << std::endl;
    return 0;
}

输出

以下是以上代码的输出:

Enter an Integer: 123421
Characters read: 2
Buffer Contents: 12
istream.htm
广告