每日一题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.hqwc.cn/news/29572.html

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

相关文章

Ceph 分布式存储之部署

一.Ceph 存储基础 1、单机存储设备 DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09; IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备&#xff0c;提供块级别的存储 NAS&#xff08;网络附加存储…

ES系列--文档处理

一、文档冲突 当我们使用 index API 更新文档 &#xff0c;可以一次性读取原始文档&#xff0c;做我们的修改&#xff0c;然后重 新索引 整个文档 。 最近的索引请求将获胜&#xff1a;无论最后哪一个文档被索引&#xff0c;都将被唯一存 储在 Elasticsearch 中。如果其他人同时…

云计算名词-IaaS,PaaS,SaaS

在学习分布式的过程中&#xff0c;知道了PaaS这个词儿&#xff0c;但是不知道是什么意思。从网上查询了之后&#xff0c;做了简单的了解。这里简单记录一下&#xff0c;方面之后的查阅。 IAAS&#xff08;Infrastructure-as-a-Service&#xff09;基础设施即服务 网上的定义是…

13matlab数据分析多项式的求值(matlab程序)

1.简述 统计分析常用函数 求最大值 max 和 sum 积 prod 平均值&#xff1a;mean 累加和&#xff1a;cumsum 标准差&#xff1a;std 方差&#xff1a;var 相关系数&#xff1a;corrcoef 排序&#xff1a;sort 四则运算 1.多项式的加减运算就是所对应的系数向量的加减运算&#…

Oracle 的视图

Oracle 的视图 源数据&#xff1a; -- Create table create table STU_INFO (id NUMBER not null,name VARCHAR2(8),score NUMBER(4,1),class VARCHAR2(2) ) tablespace STUDENTpctfree 10initrans 1maxtrans 255storage(initial 64Knext 1Mminextents 1maxextents unlim…

【4】Vite+Vue3左右容器中相同属性的元素内容自动对齐

在当今前端开发的领域里&#xff0c;快速、高效的项目构建工具以及使用最新技术栈是非常关键的。ViteVue3 组合为一体的项目实战示例专栏将带领你深入了解和掌握这一最新的前端开发工具和框架。 作为下一代前端构建工具&#xff0c;Vite 在开发中的启动速度和热重载方面具有突…

2023年下半年软考高项考试时间及安排

信息系统项目管理师一般情况下分别于上半年5月份和下半年11月份考试&#xff0c;2023年信息系统项目管理师上半年考试时间为2023年5月27日&#xff0c;下半年考试时间为2023年11月4日。 信息系统项目管理师考试报名时间&#xff1a; 下半年8月左右开始&#xff0c;各地区时间不…

接口测试 Fiddler 保存会话 (请求)

目录 前言&#xff1a; 为什么要保存请求&#xff1f; 保存单个请求 打开保存的请求文件 乱码的解决方法 保存所有请求 自动保存请求的猜想 自动保存已实现 前言&#xff1a; 在进行接口测试时&#xff0c;Fiddler是一个非常有用的工具&#xff0c;它可以帮助您捕获和…

微服务sleuth+zipkin——链路追踪

一、链路追踪&#x1f349; 1.什么是链路追踪&#xff1f;&#x1f95d; 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要…

flutter开发实战-svga播放svgaplayer_flutter直播礼物特效等效果使用

flutter开发实战-svga播放svgaplayer_flutter直播礼物特效等效果使用 最近开发过程中用到了SVGA进行播放动画&#xff0c;这里记录一下svgaplayer_flutter使用过程。svga可以做一些非常精美的动画&#xff0c;包括直播的刷礼物(火箭、跑车特效动画)等等。 效果图如下 一、SVG…

基于51单片机和proteus的电流采集系统

此系统是基于51单片机和proteus的仿真设计&#xff0c;功能如下&#xff1a; 1. LCD1602实时显示获取到电流值及设定值。 2. 按键可调整电流设定值。 3. 电流值过高则蜂鸣器报警。 4. 指示灯指示电流及系统状态。 5. 系统信息可通过串口实时更新。 功能框图如下&#xff1…

【Linux】内存使用相关

free 命令 查看内存大小 free -g :G单位 free -h : 可读性较高较理解 free -m : MB单位 total: 总内存used: 正在运行的进程使用的内存(used total – free – buff/cache)free: 未使用的内存 (free total – used – buff/cache)shared: 多个进程共享的内存buffers: 内存保留…