每日一题2023.7.19|ACM模式

文章目录

  • C++的输入方式介绍
    • cin>>
      • cin.get(字符变量名)
      • cin.get(数组名,接收字符数目)
      • cin.get()
      • cin.getline()
    • getline()
    • gets()
    • getchar()
  • A+B问题|
  • A+B问题||
  • A+B问题|||
  • A+BⅣ
  • A+B问题Ⅴ
  • A+B问题Ⅵ

C++的输入方式介绍

参考博客

cin>>

最基本,最常用的字符或者数字的输入方式。在输入过程中会过滤掉不可见字符、如空格、回车、tab。若不想过滤掉空白字符,可以使用noskipws流进行控制。

#include<iostream>
using namespace std;
int main(){int input[5];for(int i=0;i<5;++i) cin>>input[i];for(int i=0;i<5;++i) cout<<input[i]<<" ";cout<<endl;return 0;
}

运行结果
在这里插入图片描述
遇到空格回车等会结束获取输入的字符串,后面的字符串会被过滤掉(存放在输入流中),如果后面还需要输入字符串,则会从前面存放的字符串开始获取。

#include<iostream>
using namespace std;
int main(){char c[20];cin>>c;cout<<c<<endl;char d[20];cin>>d;cout<<d<<endl;cout<<endl;return 0;
}

运行结果
在这里插入图片描述

cin.get(字符变量名)

此函数从输入流中读入一个字符(char,非int,如果定义为数组或者int就会出错)返回值是该字符的ascii值,碰到输入的末尾返回EOF(值为-1)
cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格遇回车结束。

#include<iostream>
using namespace std;
int main(){char c[6];for(int i=0;i<5;++i) cin.get(c[i]);for(int i=0;i<5;++i) cout<<c[i];c[5]='\0';cout<<endl<<c<<endl;return 0;
}

在这里插入图片描述

cin.get(数组名,接收字符数目)

用来接受字符串,可以接收空格遇回车结束。(数组的最后一位是‘\0’,所以预设数组大小要比接收字符大小大1)

#include<iostream>
using namespace std;
int main(){char c[6];cin.get(c,6);cout<<c<<endl;return 0;
}

在这里插入图片描述

cin.get()

没有参数,主要用于舍弃输入流中不需要的字符或者舍弃回车(舍弃紧挨着的一个字符)。

cin.getline()

读取字符。getline()是istream类的成员函数,有如下两个重载版本

istream &getline(char*buf,int bufsize);
istream &getline(char*buf,int bufsize,char delim);//自定义结束字符

第一个版本从输入流中读取bufsize-1个字符到缓冲区buf,或遇到\n为止(哪个条件先满足就按照哪个条件执行)函数会自动在数据的末尾添加’\n’;
第二个版本与第一个版本的区别在于,第一个版本是读到\n为止,第二个版本是读到delim字符为止,\n或者delim都不会被读入buf,但会被从输入流取走。
这两个函数的返回值就是函数所作用的对象的引用。如果输入流中\n或者delim之前的字符个数达到或者超过bufsize,就会导致读入出错,其结果是:虽然本次读入已经完成,但是之后的读入都会失败。

#include<iostream>
using namespace std;
int main(){char c[6];cin.getline(c,6);cout<<c<<endl;cin.getline(c,6,'e');cout<<c<<endl;return 0;
}

在这里插入图片描述

getline()

用于string类的。使用需要包含头文件#include。getline(cin,string,s);接收一个字符串,可以接收空格、回车等。
与cin.getline()的区别:

cin.getline()接收输入字符串的是数组,getline()是string类型
cin.getline()会在数组结尾添加’\0’,getline()不会

#include<iostream>
#include<string>
using namespace std;
int main(){string str;getline(cin,str);cout<<str<<endl;return 0;
}

在这里插入图片描述
虽然getline()也使用了cin,他们之间的区别在于:
getline()中的结束符,结束之后不存放入缓冲区
cin的结束符结束之后存放在缓冲区。使用cin之后还要继续输入字符,可以使用getline()将多余的字符吃掉

#include<iostream>
#include<string>
using namespace std;
int main(){string str;cin>>str;getline(cin,str);cin>>str;//getline(cin,str);cout<<str<<endl;return 0;
}

gets()

char *gets(char *str);
gets()函数存在一些安全问题,容易导致缓冲区溢出。由于无法限制读取的字符数量,只会根据输入行的长度决定读取的字符数量,因此可能会导致输入数据超出目标缓冲区的长度,进而造成缓冲区溢出漏洞。
更安全的替代函数fgets();

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main(){char str[5];fgets(str,sizeof(str),stdin);printf("%s\n",str);return 0;
}

在这里插入图片描述

getchar()

需要包含#include。
从标准的输入stdin中读取字符。可以从流中取出回车符

#include<iostream>
#include<string>
using namespace std;
int main(){string str;cin>>str;getchar();getline(cin,str);cout<<str<<endl;return 0;
}

在这里插入图片描述

A+B问题|

题目描述
你的任务是计算a+b
输入
输入包含一系列的a和b对,通过空格隔开。一对a和b占一行
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
3 4
11 40
样例输出
7
51

#include<iostream>
using namespace std;
int main(){int a,b;while(cin>>a>>b){cout<<a+b<<endl;}return 0;
}

A+B问题||

题目描述
你的任务是计算a+b,但输入方式有变
输入
第一行是一个整数N,表示后面会有N行a和b,通过空格隔开
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
2
3 4
11 40
样例输出
7
51

#include<iostream>
using namespace std;
int main(){int N;cin>>N;int a,b;while(N--){cin>>a>>b;cout<<a+b<<endl;}return 0;
}

A+B问题|||

题目描述
你的任务是计算a+b
输入
输入中每行是一对a和b。其中会有一对是结束标志0和0,且该标志不参与计算
输出
对于输入的每对a和b,依次输出a、b的和。对于输入中的第二对a和b,在输出中它们的和应该在第二行
样例输入
3 4
11 40
0 0
样例输出
7
51

#include<iostream>
using namespace std;
int main(){int a,b;while(1){cin>>a>>b;if(!a&& !b) break;cout<<a+b<<endl;}return 0;
}

A+BⅣ

题目描述
你的任务是计算若干整数的和
输入
每行的第一个数N,表示后面有N个数。如果N=0时表示输入结束,且这一行不要计算。
输出
每一行数据输出相应的和
样例输入
4 1 2 3 4
5 1 2 3 4 5
0
样例输出
10
15

#include<iostream>
using namespace std;
int main(){int N;int a,sum;while(true){cin>>N;if(!N) break;sum = 0;while(N--){cin>>a;sum+=a;}cout<<sum<<endl;}return 0;
}

A+B问题Ⅴ

题目描述
你的任务是计算两个整数的和
输入
输入包括若干行,每行输入两个整数a和b,由空格分隔。
输出
对于每组输入,输出a和b的和,每行输出后接一个空行
样例输入
2 4
11 19
样例输出
6
空行
30

#include<iostream>
using namespace std;
int main(){int a,b;while(cin>>a>>b){cout<<a+b<<endl<<endl;}return 0;
}

A+B问题Ⅵ

题目描述
你的任务是计算若干整数的和
输入
输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。
输出
对于每组输入,输出M个整数的和,每组输出之间输出一个空行。
样例输入
3
4 1 2 3 4
5 1 2 3 4 5
3 1 2 3
样例输出
10
空行
15
空行
6

#include<iostream>
using namespace std;
int main(){int N;cin>>N;int M,a,sum;while(N--){cin>>M;sum=0;while(M--) {cin>>a;sum+=a;}cout<<sum<<endl<<endl;}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-tree 树全部展开或收起

绑定属性expanded&#xff0c;树自带方法this.$refs.tree.store.root.expanded&#xff0c;在mounted方法中给树方法赋值expandAll false&#xff0c;具体代码实现详情如下&#xff1a; html代码&#xff1a; <template><el-treeref"tree":data"sho…

java建造者模式

在Java中实现建造者模式&#xff0c;可以通过创建一个建造者类&#xff08;Builder&#xff09;和一个产品类&#xff08;Product&#xff09;来完成。下面是一个简单的示例&#xff1a; 首先&#xff0c;我们创建一个产品类&#xff08;Product&#xff09;&#xff0c;其中包…

rabbitmq部署(docker方式)

前言&#xff1a;rabbitmq一旦有漏洞&#xff0c;版本升级麻烦&#xff0c;于是改为docker部署 环境&#xff1a;centos7 #停掉之前的服务 systemctl stop rabbitmq-server systemctl disable rabbitmq-server 查了官网&#xff0c;当前3.11.x 最高版本是3.11.19, 虽然3.12…

jupyter定制数学函数

from math import * #导入绘图模块 import numpy as np #导入数值计算模块 import matplotlib.pyplot as plt #导入绘图模块 plt.rcParams[font.sans-serif][SimHei] #绘图中文 plt.rcParams[axes.unicode_minus]False #绘图负号 import mpl_toolkits.axisartist as axisartist…

微信公众平台自定义菜单 /事件推送

用户点击自定义菜单后&#xff0c;微信会把点击事件推送给开发者&#xff0c;请注意&#xff0c;点击菜单弹出子菜单&#xff0c;不会产生上报。请注意&#xff0c;第3个到第8个的所有事件&#xff0c;仅支持微信iPhone5.4.1以上版本&#xff0c;和Android5.4以上版本的微信用户…

react中使用redux,但是通过useEffect监听不到redux中的数据变化?

在React中使用Redux并通过useEffect监听Redux中的数据变化时&#xff0c;需要使用react-redux库中的useSelector钩子来选择需要监听的Redux状态。useSelector函数允许您从Redux存储中选择和获取特定的状态。 以下是一种在React组件中使用Redux&#xff0c;并通过useEffect监听…

安卓通过adb pull和adb push 手机与电脑之间传输文件

1.可以参考这篇文章 https://www.cnblogs.com/hhddcpp/p/4247923.html2.根据上面的文章&#xff0c;我做了如下修改 //设置/system为可读写&#xff1a; adb remount //复制手机中的文件到电脑中。需要在电脑中新建一个文件夹&#xff0c;我新建的文件夹为ce文件夹 adb pull …

如何在无人机支持下完成自然灾害风险评估的原理和方法

对灾害的损失进行估算与测算是制定防灾、抗灾、救灾 及灾后重建方案的重要依据。 自然灾害评估按灾害客观地发展过程可分三种&#xff1a;一是灾前预评估&#xff0c;二是灾期跟踪或监测性评估&#xff0c;三是灾后实测评估。 灾前预评估要考虑三个因素&#xff0c;第一是未来…

基于ssm的社区生活超市的设计与实现

博主介绍&#xff1a;专注于Java技术领域和毕业项目实战。专注于计算机毕设开发、定制、文档编写指导等&#xff0c;对软件开发具有浓厚的兴趣&#xff0c;工作之余喜欢钻研技术&#xff0c;关注IT技术的发展趋势&#xff0c;感谢大家的关注与支持。 技术交流和部署相关看文章…

JVM系列(5)——类加载过程

一、类的生命周期 加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Initialization&#xff09;、使用&#xff08;Using&#xff09…

Ceph集群

目录 一、存储概述 1.单机存储设备 1.1 DAS 1.2 NAS 1.3 SAN 2. 单机存储的问题 3. 商业存储解决方案 4.分布式存储&#xff08;软件定义的存储 SDS&#xff09; 4.1 分布式存储的类型 二、Ceph简介 1.Ceph 优势 2. Ceph 架构 2.1 RADOS 基础存储系统 2.2 LIBRADOS…

C# 操作Ini文件

C# 操作Ini文件 public class IniHelper {[System.Runtime.InteropServices.DllImport("kernel32")]private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);[System.Runtime.InteropServices.DllImport(…

十大网络安全上市公司分析,让我们重点聊聊F5

网络安全上市厂商业务广泛分布于网络安全硬件、软件&#xff0c;网络安全服务等板块&#xff0c;总体来看&#xff0c;十大网络安全上市公司的竞争可谓是如火如荼。今天让我们把目光集中在F5&#xff0c;这个能为我们所有人创造更安全的数字世界的企业&#xff0c;在应用及API交…

从零搭建vue+electron桌面应用

从零搭建vueelectron桌面应用 一、准备工作1.全局下载electron2.全局下载vue脚手架3.创建vue项目&#xff08;这里用的是vue2版本&#xff09;4.安装打包插件5.安装electron-builder&#xff0c;安装后可以直接生成主进程的配置文件6.在vue.config.js中添加以下配置 二、运行项…

ucore lab1

ucore lab1 练习1&#xff1a;理解通过make生成执行文件的过程。&#xff08;要求在报告中写出对下述问题的回答&#xff09; 1 .操作系统镜像文件ucore.img是如何一步一步生成的&#xff1f;(需要比较详细地解释Makefile中每一条相关命令和命令参数的含义&#xff0c;以及说…

left join 和except方法区别和联系

目录 相同点&#xff1a; left join except 不同点 假设有两个表&#xff1a;A客户表 和 B客户表&#xff0c;客户uid是唯一主键 相同点&#xff1a; 查询在A中的客户 但不在B中&#xff0c;也就是图中的阴影部分&#xff0c;left join 和except方法都可以实现 left join …

使用IDEA社区版创建SpringBoot项目

文章目录 1.关于IDEA社区版的版本2.下载Spring Boot Helper3.创建项目4.配置Maven国内源4.1找不到settings.xml的情况4.2找得到settings.xml的情况 4.3删除repository目录下的所有文件和目录5.加载项目6.解决org.springframework.boot:spring-boot-starter-parent:pom:2.7.13.R…

laravel 的SQL使用正则匹配

案例场景 精准正则匹配 查询结果 代码如下 $regexp ^ . $new_str . [^0-9];$info Test::query()->where(is_del, 0)->whereRaw("name REGEXP $regexp")->pluck(name, id)->toArray();字符 “^” 匹配以特定字符或者字符串开头的文本 name 字段值包含…

记一次搞崩ubuntu系统的经历

本来想在ubuntu系统上安装一个windows系统&#xff0c;没想成在对磁盘进行分区的时候出错了&#xff0c;导致进入了grub模型&#xff0c;一直出不来&#xff0c; 过程中一些很好的链接放上来哈 市面上很少有的基于linux系统安装另外一个系统的&#xff08;感觉是非常靠谱的&…

php做网页版剪刀石头布的功能

实例讲述了php实现的网页版剪刀石头布攻略在玩游网上的设计。分享给大家供大家参考&#xff0c;具体如下&#xff1a; <?php /* * Created on 2016-11-25 * */ if (isset($_POST[sub])) { $what $_POST[what]; //需要输入的数组 $my_array array("剪刀","…