cin读入多行用空格隔开的数字并放进不同vector-利用cin.get()

这篇博客探讨了如何在C++中处理用户输入的有序链表数据,通过cin读取整数并构建链表。文章详细解释了如何利用cin.get()方法捕获缓冲区中的换行符,从而正确地读取完整输入。内容涉及到了输入流对象cin的特性以及在处理链表数据时的注意事项,适合C++初学者和对链表操作感兴趣的读者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

合并有序链表
输入:
1 6 12 18
3 5 9 20
输出:
1 3 5 6 9 12 18 20


下面所说的忽略也可以理解成丢弃!

首先我们要用cin把用户的输入存入两个数组中。

很简单的一个想法,让cin去缓冲区读数据赋值给num,直到遇到缓冲区中的’\n’(Enter),就跳出本次cin。

我们知道,cin作为一个输入流对象会忽略缓冲区中的空格,Enter和结束符,所以我们要怎么去拿到这个Enter呢(判断换行)?

当我们输入1 6 12 18,按下Enter键,那么字符串“1 6 12 18\n"被存入缓冲区,cin开始从缓冲区读取数据,赋值给num,并放入vector中。

直到读取完18,此时缓冲区中还存在一个字符’\n’,但是假如用下面这种方式是无法读取到这个’\n’的
char ch;
cin>>ch;
因为上面说过,cin会忽略缓冲区中的Enter字符,因此C提供了一个方法从缓冲区中读取Enter字符,即ch=cin.get()或者cin.get(ch),因为cin.get()不会忽略缓冲区中的Enter和空格。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值