首页 > 编程笔记

C++ read()函数:读取字符串

read() 函数用于从输入流中读取指定字符个数的字符串,函数声明如下所示:
istream& read(char* dst, streamsize count);
上述函数声明中,read() 函数的参数与 getline() 函数的参数含义相同,只是 read() 函数没有结束符,直到读取count−1个字符才会结束读取。

read() 函数在读取数据时,对读取到的字节序列不作任何处理。read() 函数不会识别换行符、空格等特殊字符,遇到换行符\n也不会结束读取。

【示例】下面通过案例演示 read() 函数的用法,C++ 代码如下:
#include<iostream>
using namespace std;
int main()
{
    char buf[50]={0};
    cout<<"请输入一个字符串:"<<endl;
    cin.read(buf,25);
    cout<<"输出:"<<endl<<buf<<endl;
    return 0;
}
运行结果:

请输入一个字符串:
Hello World!
www.weixueyuan.net
输出:
Hello World!
www.weixueyu

本例第 7 行代码调用 read() 函数读取 24个 字符存储到 buf 数组中。第 8 行代码输出 buf 数组中的数据。

由运行结果可知,当换行输入两行字符串时,read() 函数成功读取了两行字符串,并存储到 buf 数组中,在输出时成功输出了 buf 数组中的数据。在读取过程中,遇到换行符 '\n',read() 函数并没有结束读取。

优秀文章