当前位置: 首页 > news >正文

C++字符串的行输入

1、字符串的输入

        下面用一个真实的示例来进行演示:

#include<iostream>
#include<string>int main()
{using namespace std;const int ArSize = 20;char name[ArSize];char dessert[ArSize];cout << "Enter your name:\n";cin >> name;cout << "Enter your favorite dessert name:";cin >> dessert;cout << endl;cout << "I have some delicions " << dessert << " for you ," << name <<"\n";return 0;}

这里的输出结果是:

Enter your name:
Alistair Dreeb
Enter your favorite dessert name:
I have some delicions Dreeb for you ,Alistair

聪明的小伙伴肯定发现了,这里我们并没有输入dessert,而最后一句直接输出了dessert,这就是cin在处理字符串的缺陷。因为cin手动输入时,我们不能输入空字符,那么cin就要用其他的方式来判断结尾,所以cin就是用空白(空格,制表符和换行符)来判断的。在第一个输入时Alistair作为第一个字符串被放进了输入流中,而Dreeb被当做第二个字符串放入输入流中,因此编译器是将Dreeb当做了dessert的值,所以直接跳过了dessert的输入。这就是其中的原理。

2、每次读取一行字符输入

       在我们生活中,不可能每次都只是输入一个单词,比如我们想输入一个城市名New York或者是San Paulo,这些单词中间都有空格,那我们应该怎样输入这些字符串呢?这里要用到两个相关的函数,分别是getline()函数和get()函数,两个函数都是用来读取一行字符输入的,但是用法却不相同,我们先来讲getline()函数。首先,getline()函数是来自于istream文件中的一个类函数,通过cin对象进行使用,它有两个参数一个是char数组的名称,另一个则是将要输入字符串的大小,例如:cin.getline(name,19),这样可以读取整行的字符串输入(注意输入字符串的字符数不能超过参数所给定的数量),当编译器遇到换行符时,会自动停止读取。另一个函数get()函数与getline()函数的使用方法相同,参数也是相同的,但是唯一不同的是,get()函数会保留换行符,例如:

cin.get(name1,19);

cin.get(name2,19);

此时,编译器只能读取到第一个函数的字符串,而第二个函数只能读取到换行符 ,导致name2为空白,那么我们应该如何来消除这个缺陷呢,刚好这里有个get()函数变体,它不需要参数,可以读取换行符,从而消除缺陷,即:

cin.get(name1,19);

cin.get();

cin.get(name2,19);

这样就可以读取第二个字符串常量了。这里还有一个变式,就是cin.get(name1,19).get(),这样与getline()函数的作用相同。

相关文章:

  • 做装修网站网络营销的效果是什么
  • 佛山制作网站百度收录申请入口
  • 网站咨询弹窗怎么做外贸推广具体是做什么
  • 公司手机网站建设路由优化大师
  • 石家庄招标网官方网站西安做推广优化的公司
  • 网站建设的书免费推广seo
  • 华为服务器的选型指南
  • AI + 化学实验:从“黑匣子”到“显微镜”,人工智能如何让化学研究更聪明?
  • TouchDIVER Pro触觉手套:虚拟现实中的多模态交互新选择
  • day41/60
  • OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
  • Springboot项目中使用手机号短信验证码注册登录实现
  • Starrocks 低基数全局字典优化
  • 【stm32】标准库学习——USART串口
  • 攻防世界-MISC-MeowMeowMeow
  • C++面试题(46)------滑动窗口的最大值
  • vue 路由学习
  • Python核心库Pandas详解:数据处理与分析利器
  • 【最新实时目标检测YOLOv13添加PyQt可视化界面】
  • 旁挂式集中转发AC基础配置
  • 对手机屏中断路和短路的单元进行切割或熔接,实现液晶线路激光修复原理
  • 《贵州棒垒球》有什么国家级比赛·棒球1号位
  • Qt面试题汇总
  • 集成 Odoo、n8n 与 Dify,实现智能业务流程自动化
  • 通过环境变量管理多版本JDK8、11、17并安装idea编译器
  • 第十节 新特性与趋势-CSS层叠规则升级