C++通过回车结束循环输入

2023-11-16

试想一个案例,假设需要你输入n行数字,而每一行输入的数字数量都未知(不定),如何通过C++来实现这一操作?


本贴笔者给出一个具体案例:首先规定输入的行数,而后在每一行输入不定量的数字,最后将每一个数字对应的值,以及与其匹配的行数输出

例如,输入:

2

1 2 3 4 5 

 6 7

则输出:

1,1

1,2

1,3

1,4

1,5

2,6

2,7

 具体的思想是:定义一个二值对类型,再用一个该类型的vector实现无限存储数据的功能。

定义结构体

struct goal{
	int num;
	int name;
};

定义初始变量

	vector<goal> T;
	//目标数组 
	int num=0;
	cin>>num;

while循环通过回车结束输入!

ignore函数可以清楚cin输入字符后的'\n',在这里使用主要用来实现合法换行的过渡。具体解释见代码注释~

cin.ignore();
	//由于输入的行数是第一个输入
	//在终端会多执行一次回测
	//所以要用额外的ignore函数处理一次! 
	for(int i=1;i<=num;i++)
	{
		cout<<"这是第"<<i<<"行的输入:"<<endl;
		char c; 
		cin.get(c);
		//获取第一个输入 
		while(c!='\n'){
			cin.ignore(); 
			//通过ignore函数清空上一次的回车符缓存!
			//否则会直接跳出循环 
			goal temp;
			temp.name=c-48;
			temp.num=i;
			T.push_back(temp);
			cin.get(c);
			//获取下一次的输入 
		}
	}

迭代器检验输入结果

	for(vector<goal>::iterator it=T.begin();it!=T.end();it++)
		cout<<(*it).num<<" "<<(*it).name<<endl;

全代码如下:

#include <iostream>
#include <vector>
using namespace std;

struct goal{
	int num;
	int name;
};

int main(int argc, char** argv) {

	vector<goal> T;
	//目标数组 
	int num=0;
	cin>>num;
	
	cin.ignore();
	//由于输入的行数是第一个输入
	//在终端会多执行一次回测
	//所以要用额外的ignore函数处理一次! 
	for(int i=1;i<=num;i++)
	{
		cout<<"这是第"<<i<<"行的输入:"<<endl;
		char c; 
		cin.get(c);
		//获取第一个输入 
		while(c!='\n'){
			cin.ignore(); 
			//通过ignore函数清空上一次的回车符缓存!
			//否则会直接跳出循环 
			goal temp;
			temp.name=c-48;
			temp.num=i;
			T.push_back(temp);
			cin.get(c);
			//获取下一次的输入 
		}
	}
	for(vector<goal>::iterator it=T.begin();it!=T.end();it++)
		cout<<(*it).num<<" "<<(*it).name<<endl;
	
	return 0;
}

输入测试用例:13197371 7166

 

结果与预期一致! 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++通过回车结束循环输入 的相关文章

随机推荐

  • 题目 1548: [蓝桥杯][算法提高VIP]盾神与砝码称重

    时间限制 1Sec 内存限制 128MB 提交 782 解决 331 题目描述 有一天 他在宿舍里无意中发现了一个天平 这 个天平很奇怪 有n个完好的砝码 但是没有游码 盾神为他的发现兴奋不已 于是他准备去称一称自己的东西 他准备好了m种物
  • 矩阵树定理

    启蒙 http zhengruioi com contest 1416 T1 T2的10分暴力 后面是论文科技 不搞了 https www luogu com cn problem P6178 O n 3
  • 你不知道的javascript之函数作用域和块作用域(一)

    立即执行函数表达式 IIFE 1 使用匿名函数表达式 var a 2 function IIFE var a 3 console log a 3 console log a 2 2 当作函数调用并传递参数进去 var a 2 functio
  • 机器学习总结

    目录 一 连续特征的离散化 在什么情况下将连续的特征离散化之后可以获得更好的效果 二 LabelEncoder和OneHotEncoder 在特征工程中的应用 三 神经网络 深度学习 四 反向传播与梯度下降 五 聚类算法 六 机器学习 样本
  • python+Opencv数字图像处理入门到精通

    1 环境配置 在python 3 4 2 之后 一些算法被申请了专利 可能不能在使用 因此 建议使用的版本为 3 4 1 15或3 4 0 15 在Anaconda下安装opencv需要执行如下两个指令 pip install opencv
  • "免费!中文!10个最佳Python学习网站推荐

    分享资料 一起学习 我是小白 微信 tlxx233 备注 888建了个微信程序员学习群 互相解答问题 有需要的同学可以加我微信进群 10个免费学习 Python 的中文网站 如果你想要学习 Python 那么这篇文章将会介绍 10 个免费的
  • Linux和Windows下使用Syslog库

    本文档描述如何在Windows和Linux下使用Syslog库 在Linux下GNU库中已经自带有syslog库 但是在Windows下的标准库中没有syslog库 从网上可以找到syslog的开源代码实现 接口函数基本上与Linux一致
  • 高精度运算c++

    高精度运算c 前言 加法 减法 乘法 除法 求余 全部代码 完 前言 采用c 的stl库实现高精度的加减乘除 以及求余运算 希望可以帮助到大家 加法 string add big string a string b string 加 str
  • String和基本数据类型的比较方式

    package com test author xlj 简单的比较方式 public class Test public static void main String args System out println 192 168 101
  • springboot项目启动时:Failed to retrieve application JMX service URL

    application properties配置有问题 检查即可
  • Cannot find any provider supporting AES/CBC/PKCS5Padding

    1 出现的问题 java lang RuntimeException java security NoSuchAlgorithmException Cannot find any provider supporting AES CBC PK
  • Elastic Search 安装部署最全教程(Docker)

    一 部署单点ES 1 首先创建网络 因为我们还需要部署kibana容器 因此需要让es和kibana容器互联 这里先创建一个网络 docker network create es net 2 加载镜像 docker pull elastic
  • 刀片服务器 如何增加硬盘,IBM为刀片服务器添加新SAS及固态硬盘

    在调整过X64产品线后 我们又收到IBM将为服务器产品线添加新SAS硬盘及固态硬盘的消息 上周IBM刚发布了一款小尺寸的SAS硬盘 它只有2 5英寸 而之前的硬盘基本上都是3 5英寸的SCSI硬盘 因为IBM拥有世界上最好的硬盘研究和生产工
  • 疯壳4900、7072心率血压血氧心电四合一智能手表&模组电容触摸实现

    触摸 该手表的触摸是由RH6015C触摸IC完成的 该IC是一款内置稳压模块的单通道电容式触摸感应控制开关 IC 可以替代传统的机械式开关 RH6015可在有介质 如玻璃 亚克力 塑料 陶瓷等 隔离保护的情况下实现触摸功能 安全性高 RH6
  • delete 和 delete []的真正区别

    c 中对new申请的内存的释放方式有delete和delete 两种方式 到底这两者有什么区别呢 1 我们通常从教科书上看到这样的说明 delete 释放new分配的单个对象指针指向的内存 delete 释放new分配的对象数组指针指向的内
  • ubuntu下解决wps2019缺少字体问题

    准备字体包 链接 https pan baidu com s 1rsqn3CY SWS KWaKc0w83g 提取码 h9cs 复制 解压后的wps symbol fonts zip到 home usr share fonts下 sudo
  • 西门子PLC—用 SCL 编写你的第一个 TIA 代码

    前言 使用梯形图编写程序时 博途编辑器是通过网络段 把程序分成一段一段的 编辑器可以插入若干个网络段 每一个网络段可以有各自的注释 而SCL是文本语言 不分网络段 在LAD FBD语言内增加SCL的除外 这就需要需要用其他的方法来 解决程序
  • 面试总结大全

    预定义变量 0 脚本名 所有的参数 所有的参数 参数的个数 当前进程的PID 上一个后台进程的PID 上一个命令的返回值 0表示成功 for 循环次数是固定的 for i in 取值 范围 1 20 zhangsan lisi wanger
  • 牛客网——华为题库(41~50)

    华为题库 41 称砝码 42 学英语 43 迷宫问题 44 Sudoku 45 名字的漂亮度 46 截取字符串 48 从单向链表中删除指定值的节点 50 四则运算 41 称砝码 include
  • C++通过回车结束循环输入

    试想一个案例 假设需要你输入n行数字 而每一行输入的数字数量都未知 不定 如何通过C 来实现这一操作 本贴笔者给出一个具体案例 首先规定输入的行数 而后在每一行输入不定量的数字 最后将每一个数字对应的值 以及与其匹配的行数输出 例如 输入