0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

istream的类方法?常用的istream的类方法有哪些?

冬至子 来源:iDoitnow 作者:艰默 2023-07-18 15:15 次阅读

1. istream的类方法

常用的istream的类方法有:

  • 方法get(char&)get(void)提供不跳过空白的单字符输入功能;
  • 函数get(char*, int, char)getline(char*, int, char)在默认情况下读取整行而不是一个单词。

单字符输入

在使用char参数或没有参数的情况下,get()方法读取下一个输入字符,即使该字符是空格、制表符或换行符。

get(char & ch)------该版本将输入字符赋给其参数,并返回调用对象(cin)。
get(void)-----------该版本将输入字符转换为整型(通常是int),并将其返回。

两者的主要特性如下:

1.jpg

字符串输入

getline()成员函数和get()的字符串读取版本都读取字符串,它们的函数特征标相同(这是从更为通用的模板声明简化而来的):

istream & get(char *, int, char);
istream & get(char *, int);
istream & getline(char *, int, char);
istream & getline(char *, int);

:第一个参数是用于放置输入字符串的内存单元的地址。第二个参数比要读取的最大字符数大1(额外的一个字符用于存储结尾的空字符,以便将输入存储为一个字符串)。第3个参数指定用作分界符的字符,只有两个参数的版本将换行符用作分界符。上述函数都在读取最大数目的字符或遇到换行符后为止】

例如:

char line[50];
cin.get(line, 50);//cin.get( )函数将在到达第49个字符或遇到换行符(默认情况)后停止将输入读取到数组中

get()getline()之间的主要区别在于,get()将换行符留在输入流中,这样接下来的输入操作首先看到的将是换行符,而getline()抽取并丢弃输入流中的换行符。】

如何忽略字符串中某些内容呢?C++为我们提供了ignore( )函数,该函数的原型如下:

//第一个参数是一个数字,指定要读取忽略的最大字符数,默认为1
//第二个参数是一个字符,用作输入的分界符,默认为EOF
istream & ignore(int = 1, int = EOF);

//eg:
if (ch != 'n') cin.ignore(255, 'n');  //可以用来忽略上次输入流中残余的字符串

2. 其他istream方法

除前面讨论过的外,其他istream方法包括read()peek()gcount()putback()

1.jpg

其使用方法如下:

//read()
char read_arr[100];
cin.read(read_arr, 100);//其返回值类型为istream &,可以这样拼接使用:cin.read(read_arr, 10).read(read_arr + 10, 90);

//peek()
char input[100];
int i = 0;
while(cin.peek() != '.')
    cin.get(input[i++]);
input[i]='�';

//gcount()
char arr[20]; 
istringstream stream("abc"); 
stream.read(arr, sizeof arr); 
auto count = stream.gcount();//count = 3

//putback()
char c;
int n;
char str[256];
cout < < "Enter a number or a word: ";
c = cin.get();
if ((c >= '0') && (c <= '9')) {
    cin.putback(c);
    cin > > n;
    cout < < "You have entered number " < < n < < endl;
} else {
    cin.putback(c);
    cin > > str;
    cout < < " You have entered word " < < str < < endl;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7455

    浏览量

    163623
  • 字符串
    +关注

    关注

    1

    文章

    577

    浏览量

    20488
  • C++语言
    +关注

    关注

    0

    文章

    147

    浏览量

    6972
收藏 人收藏

    评论

    相关推荐

    如何使用Python的? 优势哪些?

    其实例化,然后用实例代表,进而调用中的方法处理数据。那么实例是怎么代表的呢?在定义及其方法
    发表于 07-30 18:08

    Python中的方法、实例方法和静态方法

    Python中实例属性和实例方法Python中类属性和方法Python中调用方法
    发表于 11-05 06:25

    请问Python中的方法、实例方法和静态方法是什么?

    Python中的方法、实例方法和静态方法
    发表于 11-09 07:13

    python静态方法方法

    python静态方法方法1. 写法上的差异类的方法可以分为:静态方法 staticmet
    发表于 03-07 16:56

    基于数据连续性的聚方法

    为了解决数据遗漏问题,根据内样品均匀分布的性质提出了一种新的聚方法,该方法仅对内样品均匀分布性敏感,不需要预先设置包括
    发表于 05-25 17:17 0次下载
    基于数据连续性的聚<b class='flag-5'>类</b><b class='flag-5'>方法</b>

    Java数组的常用方法_Java:数组工具Arrays常用方法的用法及代码

    本文主要详细介绍了Java数组的常用方法以及数组工具Arrays常用方法的用法及代码。
    发表于 01-29 10:25 2912次阅读

    数据挖掘的四方法

    本视频主要详细介绍了数据挖掘的四方法,分别是神经网络方法、遗传算法、决策树方法、粗集方法
    的头像 发表于 04-10 16:40 1.4w次阅读

    可提取非线性结构的子空间聚方法

    聚类分析是机器学习与数据挖掘中的重要工具,而子空间聚是髙维数据分析中常用的聚方法。基于谱图的子空间聚
    发表于 05-18 14:01 2次下载

    python静态方法方法

    python静态方法方法 1. 写法上的差异 方法可以分为: 静态方法
    的头像 发表于 03-07 16:56 1560次阅读

    Java中Arrays是什么 Arrays常用方法

    了解Arrays的概念 **A****rrays** 位于java.util包下,Arrays是一个操作数组的工具。 Arrays常用方法 Arrays.fill:
    的头像 发表于 02-17 15:11 1020次阅读
    Java中Arrays<b class='flag-5'>类</b>是什么 Arrays<b class='flag-5'>常用</b><b class='flag-5'>方法</b>

    子类中继承父方法

    首先得在父中创建一个方法,利用创建的方法的格式void+方法名(){},然后在子类中调用这个方法:直接输入
    的头像 发表于 04-06 14:53 1353次阅读
    子类中继承父<b class='flag-5'>类</b>的<b class='flag-5'>方法</b>

    super调用父的构造方法

    我们分析这句话“父对象的引用”,那说明我们使用的时候只能在子类中使用,既然是对象的引用,那么我们也可以用来调用成员属性以及成员方法,当然了,这里的 super 关键字还能够调用父的构造方法
    的头像 发表于 10-10 16:42 876次阅读
    super调用父<b class='flag-5'>类</b>的构造<b class='flag-5'>方法</b>

    Object中的所有方法

    ,也就是说任何都直接或间接继承此类,Object 中能访问的方法在所有中都可以调用,下面我们会分别介绍Object 中的所有
    的头像 发表于 10-13 11:50 504次阅读
    Object<b class='flag-5'>类</b>中的所有<b class='flag-5'>方法</b>

    java抽象可以普通方法

    Java中的抽象可以普通方法,但它也可以抽象方法。抽象是一种中间状态,介于普通
    的头像 发表于 11-21 10:22 1496次阅读

    this可以出现在方法中吗

    是的, this 关键字可以出现在方法中。在Java中, this 是一个引用,用于引用当前对象的实例。它可以在的实例方法中使用,以访问该实例的成员变量和
    的头像 发表于 11-28 16:24 1350次阅读