首页 > 其他分享 >使用cin和getline()输入字符串

使用cin和getline()输入字符串

时间:2023-04-23 22:56:44浏览次数:55  
标签:cout cin Doe 字符串 John getline 输入 string

相同点:

作为while的条件时,终止条件均为:Ctrl z(或则Z),执行本循环,执行完后进入下一个循环均为换行符。

1     string s;
2     while (cin >> s)
3     {
4         cout << "you input is:" << endl;
5         cout << s << endl;
6     }
1     string s;
2     while (getline(cin,s))
3     {
4         cout << "you input is:" << endl;
5         cout << s << endl;
6     }

 不同点:

cin:

(1)string对象接收cin输入时,接收的内容区间为:第一个有效字符(空格,换行,制表符不是有效字符)到空格,换行,制表符。

(2)如果换行符输入之前输入内容为John Doe,则string只接收了John,而下次输入时string对象会首先检查输入缓冲区是否有剩余字符,如果有(Doe)则string对象不会输入的内容,而会接收缓冲区内剩余的内容(Doe)

#include <iostream>
#include <string> // Header file needed to use string objects
using namespace std;

int main()
{
    string name;
    string city;
    cout << "Please enter your name: ";
    cin >> name;
    cout << "Enter the city you live in: ";
    cin >> city;
    cout << "Hello, " << name << endl;
    cout << "You live in " << city << endl;
    return 0;
}

程序运行的结果为:

Please enter your name: John Doe
Enter the city you live in: Hello, John
You live in Doe

(3)当cin作为while循环的条件时,

如果输入内容为John Doe,再输入空格时会循环两次,分别输出John和Doe。

1     string s;
2     while (cin >> s)
3     {
4         cout << "you input is:" << endl;
5         cout << s << endl;
6     }

 

 getline():

string对象会接收所有的字符(包括:空格,制表符),直到遇到换行符。

 1 #include <iostream>
 2 #include <string> // Header file needed to use string objects
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     string name;
 8     string city;
 9     cout << "Please enter your name: ";
10     getline(cin, name);
11     cout << "Enter the city you live in: ";
12     getline(cin, city);
13     cout << "Hello, " << name << endl;
14     cout << "You live in " << city << endl;
15     return 0;
16 }

程序运行结果为:

Please enter your name: John Doe
Enter the city you live in: Chicago
Hello, John Doe
You live in Chicago

参考文章:
C++ getline函数用法详解 (biancheng.net)

标签:cout,cin,Doe,字符串,John,getline,输入,string
From: https://www.cnblogs.com/Sandals-little/p/17348040.html

相关文章

  • python中的字符串和列表
    name="1"name='1'name="""1"""""name='''1'''#都为正确的字符串定义方式#字符串中一个字符占一个空间 #字符串切片格式为[起始:结束:步长]#从起始开始,到结束前一位结束不含结束本身,,默认步长为1,步长可为正可为负a[-4:]#取出a字符串的最后四位#如果只有一......
  • MySQL日期字符串转日期格式,日期格式数据转为字符串
    如下:1、日期字符串转换为日期格式数据SELECTDATE('2017-02-11');SELECTDATE('2017/02/11');SELECTSTR_TO_DATE('2015/02/25','%Y/%m/%d');SELECTSTR_TO_DATE('2015-02-25','%Y-%m-%d');返回日期格式数据 2、DATE_FORMAT......
  • redis linux下安装 redis启动方式 redis典型场景 redis通用命令 数据结构和内部编码 r
    内容回顾#dockerfile命令 RUNCOPYADDENVEXPOSEWORKDIRCMD:可以用新命令覆盖的ENTRYPOINT:不可以被覆盖#容器要运行,必须有个前台进程#dockerfile部署图书管理系统项目 FROMpython:3.8MAINTAINERlqzWORKDIR/soft......
  • 十、字符串-替换空格
    题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。publicclassSolution{publicStringreplaceSpace(StringBufferstr){ if(str==null){returnnull;}......
  • 给定一个正整数字符串,使用Python正则表达式在其千分位上添加逗号
    大家好,我是皮皮。一、前言前几天在Python黄金青铜群【沐】问了一个Python正则表达式的问题,这里拿出来给大家分享下。题目:给定一个正整数字符串,如12345678、345678,使用正则表达式在其千分位上添加逗号,如12,345,678、345,678。二、实现过程这里ChatGPT给了一个答案,可以使用......
  • jackson将java对象转换为json字符串
    1.1. 下载jacksonJackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。下载地址:http://jackson.codehaus.org/1......
  • 力扣844(Java)-比较含退格的字符串(简单)
    题目:给定s和t两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回true。#代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。 示例1:输入:s="ab#c",t="ad#c"输出:true解释:s和t都会变成"ac"。示例2:输入:s="ab##",t="c#d#"输出:true......
  • Json字符串转换为java对象
    1.  Json字符串转换为java对象1.1. Json字符串转换为javabeanJson2Bean.javapackagejackson;importjava.io.IOException;importorg.codehaus.jackson.map.ObjectMapper;publicclassJson2Bean{publicstaticvoidmain(String[]args)throwsIOExcepti......
  • Java 编程问题:一、字符串、数字和数学
    本章包括39个涉及字符串、数字和数学运算的问题。我们将从研究字符串的一系列经典问题开始,例如计算重复项、反转字符串和删除空格。然后,我们将研究专门用于数字和数学运算的问题,例如两个大数求和和和运算溢出,比较两个无符号数,以及计算除法和模的下限。每个问题都要经过几个解决方......
  • Python 字符串占位符
    字符串不能修改使用+运算符拼接字符串,字符串与非字符串不能直接拼接。 弊端:如果变量过多,拼接起来很麻烦;字符串与非字符串之间无法进行拼接 name="Tom"info="%sis18yearsold"%name %s是占位符:%表示要占位s表示将引入的变量转为字符串放入该......