常见字符串输入收录

  • 一、cin
  • 二、cin.getline()
  • 三、cin.get()
  • 四、getline()
  • 五、getchar()
  • 六、gets()
  • 扩充结论

一、cin


用法一:

最基本,也是最常用的用法,输入一个数字。
输入:2[回车]3[回车]
输出:5
#include <iostream>
using namespace std;
int main ()
{int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}

用法二:

接受一个字符串,遇“空格”、“TAB”、“回车”都结束。
输入:jkljkljkl
输出:jkljkljkl
输入:jkljkl jkljkl //遇空格结束,所以不能输入多个单词
输出:jkljkl
#include <iostream>
using namespace std;
int main ()
{char a[20];
cin>>a;
cout<<a<<endl;
}

二、cin.getline()


cin.getline(参数一,参数二,参数三)。

第一个参数为字符数组名,表示接受到哪个字符数组中。
第二个参数表示接受的字符数量。不要忘记换行符也占一个数量
第三个参数为接受结束的标志,不指定为换行符\n。
参数一和参数二必须写,参数三不强制。

用法一:

在一维字符数组中,参数一即为字符数组名。
输入:My First String
输出:My First String
#include <iostream>
#include<string>
using namespace std;
int main()
{char chs[20];cin.getline(chs,18);cout << chs;
}
输入:Hello World
输出:Hello Worl
#include <iostream>
#include<string>
using namespace std;
int main()
{char chs[20];cin.getline(chs,11);cout << chs;
}

用法二:

在二维数组也可以使用。
输入:My First String My Second String
输出:My First String My Second String
#include <iostream>
#include<string>
using namespace std;
int main()
{char chs[2][20];for(int i=0;i<2;++i) cin.getline(chs[i], 20);for (int i = 0; i < 2; ++i) cout << chs[i]<<endl;
}

三、cin.get()


用法一:

cin.get(字符变量名)可以用来接收字符。
输入:jljkljkl
输出:j
#include <iostream>
using namespace std;
int main ()
{char ch;
ch=cin.get(); //或者cin.get(ch);只能获取一个字符
cout<<ch<<endl;
}

用法二:

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格。
输入:jkl jkl jkl
输出:jkl jkl jkl
输入:abcdeabcdeabcdeabcdeabcde (输入25个字符)
输出:abcdeabcdeabcdeabcd (接收19个字符+1个'\0')
#include <iostream>
using namespace std;
int main ()
{char a[20];
cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。
cout<<a<<endl;
}

用法三:

cin.get(无参数)没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补getline的不足,用法与cin.ignore()类似。
输入:5【换行】Hello World!
输出:5 Hello World!

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

四、getline()


接受一个字符串可以接受空格,遇换行结束。包含在string头文件中
 getline ( istream &is , string &str , char delim );
  • ostringstream : 用于执行 C 风格字符串的输出操作。
  • istringstream : 用于执行 C 风格字符串的输入操作。
  • stringstream : 同时支持 C 风格字符串的输入输出操
    第一个参数为 is 表示一个 istringstream
    第二个参数表示我们要将字符串分割的结果通过 getline 逐个放入 str 中
    第三个参数为分隔符,注意分隔符只能为字符型。(不是必须)
    输入:Hello World!
    输出:Hello World!
#include <iostream>
#include<string>
using namespace std;
int main()
{string str;getline(cin, str);cout << str;
}

注意:getline和cin一起使用时,每次使用cin都要cin.ignore()手动清除输入流中的换行符。相关内容:C++中getline()和cin()同时使用时的注意事项

或者搭配cin.get()使用相当于将换行输入到cin.get()中。

五、getchar()


接受一个字符。包含头文件string
输入:A B
输出:A
#include <iostream>
#include<string>
using namespace std;
int main()
{char ch;ch=getchar();cout << ch;
}

六、gets()


用法与cin.getline()一样只不过gets不带第三个参数。

扩充结论


结论:

  1. cin不舍弃换行符,换行符被留置输入流。

  2. getline()舍弃换行符,换行符不会被留置输入流。

  3. 当cin,getline()指定的输入大小没有被超出时,cin.getline()舍弃换行符,换行符不会被留置输入流。而当被超出时,情况比较复杂,基本不能继续进行输入了。

对结论的分析参见这篇文章cin、cin.getline()、getline()与换行符的恩怨情仇

码字不易,如果本文对你有帮助,请给我一个三连支持一下,帮助推荐给更多的朋友,在他们挠头之时给予他们帮助,让他们恍然大悟。》。。。《
哪里不对,欢迎评论探讨!互相进步,愿你我都好!

几种输入字符串的方法相关推荐

  1. C++中常见的几种输入字符串的方法

    C++中常见的几种输入字符串的方法_是赵薰薰呀的博客-CSDN博客_c++输入字符串 可以用的函数 substr substr有2种用法: 假设:string s = "0123456789 ...

  2. python字符串输入_Python输入字符串的方法和实例代码

    Python怎么输入字符串 首先,要显示字符串,直接 print(字符串) 就可以显示了. 字符串可以用单引号或者双引号,python中没有字符类型. 多个字符串直接连着写,就表示连接,字符串内部的转 ...

  3. python中如何连接两个字符串_python中5种连接字符串的方法

    字符串是Python中常用的数据类型,在开发过程中可以对字符创进行截取并与其他字符创进行连接.本文为大家介绍了5种连接字符串的方法. 1.加号 如果有其他编程语言开发经验的人,肯定知道很多语言里面是用 ...

  4. java从键盘输入字符串并求长度_java从键盘输入字符串的方法

    java从键盘输入字符串的方法 发布时间:2020-06-29 09:15:07 来源:亿速云 阅读:142 作者:Leah 本篇文章为大家展示了java从键盘输入字符串的方法,代码简明扼要并且容易理 ...

  5. excel字符串和单元格拼接_excel字符合并技巧:几种连接字符串的方法助你高效办公...

    编按:哈喽,大家好!用excel连接字符串,是我们在日常工作中,比较常用的技巧.相信大家使用最多的连接方式就是"&".但其实,在excel中连接字符串的方法有很多,并且,看 ...

  6. Java8几种常用字符串拼接方法总结

    字符串的拼接在Java开发过程中经常被使用,Java中提供了6种常用的字符串拼接方法,本文主要介绍这几种拼接方法的使用 1.使用"+"号 public static void ma ...

  7. React开发(200):三种截取字符串的方法

    JS提供三个截取字符串的方法,分别是:slice(),substring()和substr(),它们都可以接受一个或两个参数: var stmp = "rcinn.cn"; 使用一 ...

  8. excel字符合并技巧:几种连接字符串的方法助你高效办公

    [前言] 在使用EXCEL的实际应用中,我们经常会为了统计方便,把数据元素分的相对详细一些,那么统计的维度也就会多一些.同样的,有的时候我们也需要把拆分的很详细的内容,再合并成一个内容放在一个单元格中 ...

  9. 两种不同字符串比较方法的性能对比

    最近比较关注C#书写出来的代码性能问题,越研究就越觉得很有意思. 在日常的编程过程总,由于编程需要,我们经常会比较两个字符串是否相等,然后再做相应的处理.代码书写起来是觉得很爽,不是吗?if (a== ...

最新文章

  1. Tomcat的常用配置
  2. linux rootkit 新型 HORSE PILL 简介
  3. BlogEngine.NET1.2的新功能
  4. 本博客正式开通 Chat快问 功能
  5. 彻底理解HashMap的元素插入原理
  6. RHEL(Red Hat Enterprise Linux)配置YUM源
  7. Spring Data Redis实战之提供RedisTemplate
  8. python在医学领域应用_深度学习在健康医疗领域应用
  9. 几张一模一样的照片_每隔几百年,就会出现一个和你一模一样的人?这些照片怎么解释?...
  10. 如何将java程序打包成exe文件?
  11. 【优化算法】正弦余弦算法(SCA)【含Matlab源码 1308期】
  12. 康托尔—探索无穷的勇士
  13. 这些轻松赚钱的方法,学会就能月入上万
  14. Ubuntu14.04.6系统下安装软件和程序库(含安装PyCharm、Visual Studio Code、Boost和Eigen程序库等)
  15. 《STL源码剖析》-- stl_stack.h
  16. iOS之网络下载文件
  17. win7 台式机建热点
  18. linux 打开大文件命令,linux下大文件的读取
  19. linux系统创建RAID0、1、10、50
  20. vue中实现打印功能的方法与注意事项

热门文章

  1. ios微信小程序中 input 输入框问题,输入的光标中的内容自动清空
  2. Unity集成内嵌网页插件-支持Android和IOS
  3. ORACLE SQL数据类型转换
  4. nginx处理前后端分离跨域问题
  5. Qt 多线程显示gif动态图
  6. Mysql 5.7免密码登录
  7. 《炬丰科技-半导体工艺》硅衬底氮化镓蓝光 LED 发光特性研究
  8. 牛客杂记——java中左移运算符<<、右移运算符>>和无符号右移运算符>>>的区别
  9. 移动端H5-音视频资源优化方案实战方案推荐
  10. 和平战士之训练你的集中意识