C++ get()函数:读取字符
get() 函数用于从输入流中读取单个字符或多个字符,istream 类重载了多个 get() 函数。常用的重载形式有以下三种。
在读取过程中,遇到结束符就结束读取,即使没有读取够 count−1 个字符,遇到结束符之后也会结束读取,结束符不包含在读取的字符串内。如果读取了 count−1 个字符也没有遇到结束符,则在结束读取时,系统自动在字符串末尾添加
【示例】下面通过案例演示 get() 函数的用法,C++ 代码如下:
由运行结果可知,当输入字符串“I LOVE CHINA”时:
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
1) 第一种形式
int get();第一种重载形式的get()函数没有参数,返回值为int类型。get()函数的作用是从输入流读取一个字符,返回该字符的ASCII码值。
2) 第二种形式
istream& get(char& ch);第二种重载形式的get()函数有一个char类型的引用作为参数,返回值为istream类对象引用。get() 函数的作用是从输入流读取一个字符存储到字符 ch 中。
3) 第三种形式
istream& get(char* dst, streamsize count,char delimiter);第三种重载形式的 get() 函数有三个参数,其中:
- dst 为 char 类型的指针,指向一块内存空间;
- count 表示读取的字符个数;
-
delimiter 表示结束符,默认是
\0
。 -
get() 函数的作用是从输入流中读取
count−1
个字符(最后一个字符要留给 '\0'),存储到 dst 指向的内存空间。
在读取过程中,遇到结束符就结束读取,即使没有读取够 count−1 个字符,遇到结束符之后也会结束读取,结束符不包含在读取的字符串内。如果读取了 count−1 个字符也没有遇到结束符,则在结束读取时,系统自动在字符串末尾添加
\0
。【示例】下面通过案例演示 get() 函数的用法,C++ 代码如下:
#include<iostream> using namespace std; int main() { char ch; cout<<"请输入一个字符串:"<<endl; cout<<"第一种形式:"<<cin.get()<<endl; cin.get(ch); cout<<"第二种形式:"<<ch<<endl; char buf[20]; cin.get(buf,6,' '); cout<<"第三种形式:"<<buf<<endl; return 0; }运行结果:
请输入一个字符串:
I LOVE CHINA
第一种形式:73
第二种形式:
第三种形式:LOVE
- 第 7 行代码通过 cin 调用第一种形式的 get() 函数(即无参数的 get() 函数),从输入流 cin 中读取一个字符,并将结果输出;
- 第 8~9 行代码调用第二种形式的 get() 函数(即带有一个 char 类型参数的 get() 函数),从输入流 cin 中读取一个字符,存储到字符 ch 中,并输出 ch 的值;
- 第 10~12 行代码调用第三种形式的 get() 函数(即带有三个参数的 get() 函数),从输入流 cin 中读取 5(6−1)个字符存储到 buf 数组中,遇到空格结束读取。
由运行结果可知,当输入字符串“I LOVE CHINA”时:
- 第一种形式的 get() 函数调用输出结果为 73,为字符 'I' 的 ASCII 码值;
- 第二种形式的 get() 函数调用时,读取第二个字符,由于第二个字符是空格,因此输出结果为空;
- 第三种形式的 get() 函数调用时,从第三个字符开始读取 5 个字符,遇到空格结束读取,因此第三种形式的 get() 函数调用读取到了 4 个字符。
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。