关于函数getline()(简单注意事项,不懂你怼我!!!)
关于getline()函数好使但是有毒;
有两种操作需要进行特殊处理:
First:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <sstream>
using namespace std;
int n;
int a[];
int b[],c[];
int main()
{
while (cin>>n)
{
string s; //测试样例请用:
// 10
// 1 2 3 4 5
//6 7 8 9
string ss;
string sss;
getline(cin,s); //自己想想这一个存的啥;
getline(cin,ss); //这个呢
getline(cin,sss); //还有这个。。
cout<<s<<endl<<ss<<endl<<sss<<endl;
}
return ;
}
输出结果你蒙(应该是蒙吧,难道你知道?神犇!?)对了么??
cin>>n;进行完毕之后有一个\n;但是\n并不能存到n中,于是留在了缓冲区;
而当s进行读入一行操作时,实际上存入的是\n。
那么你在 ss中读入1 2 3 4 5 之后的换行为什么不需要另开一个string类型存储,反而6 7 8 9可以直接存到sss中去呢??想一下;
因为是读入一行操作,\n会被存入那一行中,而不是像n一样不能存储。所以不需要重开一个,你蒙对了么(馬鹿?)
还有另一种输入引发的另一个问题,(注意读取无用行的位置不同)
Second:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <sstream>
using namespace std;
int n;
int a[];
int b[],c[];
int main()
{
string s;
string ss;
string buf;
while (getline(cin,s))
{
int a; //如果你还是在这里插入getline(cin,buf)而不是最后;那么第一次循环buf会取代ss读入,ss就会读下一行而不是应该读取的这一行;第二次循环时s读入不了;
getline(cin,ss);
cin>>a; //这里会遗留\n;
getline(cin,buf);
}
return ;
}
PS:
这个问题为什么提出,解决什么问题呢??
题目中若要求在一组样例中读入多行则需要注意你读入的究竟是什么东西。
关于函数getline()(简单注意事项,不懂你怼我!!!)的更多相关文章
- Swift学习之函数和简单地控件的创建
今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的 ...
- Shell函数的简单应用
Shell函数的简单应用 在脚本内给函数传参: #!/bin/bash . /etc/init.d/functions CheckUrl (){ curl -I -s $ | head - } Che ...
- posix 线程(一):线程模型、pthread 系列函数 和 简单多线程服务器端程序
posix 线程(一):线程模型.pthread 系列函数 和 简单多线程服务器端程序 一.线程有3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属 ...
- c语言中函数的简单介绍
c语言中函数的介绍: 函数,简单的说就是代码的打包.存放在一个地方,当需要的时候调用. 函数分类: 1.无参无返回值函数 void func() 2.无参有返回值函数 int func() 3.有参 ...
- 程序员之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程能够分配的内存大小)
主要内容:函数返回指针注意事项<悬空指针>.查看进程能够分配的内存大小 #include <stdio.h> char * favorite_fruit() { static ...
- 字符编码知识简介和iconv函数的简单使用
字符编码知识简介和iconv函数的简单使用 字符编码知识简介 我们知道,在计算机的世界其实只有0和1.期初计算机主要用于科学计算,而我们知道一个数,除了用我们常用对10进制表示,也可以用2进制表示,所 ...
- tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例
tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例 #!/usr/bin/env python # -*- coding: utf-8 ...
- ffplay.c函数结构简单分析(画图)
最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点&q ...
- python内置函数的简单使用和介绍
"""内置函数的简单使用和介绍参考链接:https://docs.python.org/3/library/functions.html ""&quo ...
- 【JavaScript】使用setInterval()函数作简单的轮询操作
轮询(Polling)是一种CPU决策怎样提供周边设备服务的方式,又称"程控输出入"(Programmed I/O). 轮询法的概念是.由CPU定时发出询问.依序询问每个周边设备是 ...
随机推荐
- 开发常用镜像资源替换为国内开源镜像(yum,compose,maven,docker,android sdk,npm,国内开源镜像汇总)
一.国内开源镜像站点汇总 阿里云开源镜像站 (http://mirrors.aliyun.com/)网易开源镜像站 (http://mirrors.163.com/)中国科学技术大学开源镜像站 (ht ...
- 监控IIS的运行状态
IIS经常出现假死的情况,具体什么时候会出现假死,我就不说了,今天我要写的是如何监控IIS的状态. 程序的功能是:如果IIS是为运行的状态,就重启IIS,如果IIS的连接数达到了设置的连接数,也重启I ...
- PHP内核-环境搭建(一)
难得闲下来,发现自己没有系统的学习过PHP内核,希望我能够慢慢啃下PHP内核书籍,无论是抄袭也好,码字也好,一步一个脚印走下去. 学习来源:http://www.php-internals.com/b ...
- JeeSite 4.x 树形结构的表设计和用法
有些同仁对于 JeeSite 4 中的树表设计不太了解,本应简单的方法就可实现,却写了很多复杂的语句和代码,所以有了这篇文章. 在 JeeSite 4 中的树表设计我还是相对满意的,这种设计比较容易理 ...
- pgadmin导出excel
生成导入sql 第一行公式:="insert into province(code,name) values("&A2&",'"&B2& ...
- Javascript Image Slider 插件注册机
Javascript Image Slider 是个不错的轮播插件,兼容 IE 7.0+, Firefox 1.5+, Chrome 1.0+, Safari 3+, Opera 9.0+, Nets ...
- 在C#中使用.NET SDK创建控制
下载示例工程 - 8 Kb 介绍 在这篇教程中,我将使用.NET架构创建一个简单的时钟控制示例,这个控制是一个显示当前时间的时钟,我将指导读者实现秒针并显示钟点数.文章加亮处是创建这个控制的关键点,读 ...
- Zookeeper笔记之使用zk实现集群选主
一.需求 在主从结构的集群中,我们假设硬件机器是很脆弱的,随时可能会宕机,当master挂掉之后需要从slave中选出一个节点作为新的master,使用zookeeper可以很简单的实现集群选主功能. ...
- spring的普通类中获取session和request对像
在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...
- python3之SQLAlchemy
1.SQLAlchemy介绍 SQLAlchemy是Python SQL工具包和对象关系映射器,为应用程序开发人员提供了SQL的全部功能和灵活性. 它提供了一整套众所周知的企业级持久性模式,专为高效和 ...