c++中cin实现输入字符串方式

目录
  • c++ cin如何输入字符串
    • 1、cin
    • 2、cin.get()
    • 3、cin.getline()
    • 4、getline()
  • c++ cin输入 不定长输入

c++ cin如何输入字符串

1、cin

cin会过滤掉不可见字符(如空格、回车、tab等)。

如果不想略过空白字符,可以使用noskipws流控制。

cin>>noskipws>>input[i]

2、cin.get()

cin.get()可以用来接收字符

cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格。

char a[20];
cin.get(a,20);
cout<<a<<endl;

cin.get()默认接收一个字符,以tab键、space键和enter键结束。

3、cin.getline()

接收一个字符串,可以接收空格并输出

cin.getline(m,5)

接收5个字符到m中,其中最后一个为‘\0’,所以只看到4个字符输出。

4、getline()

接收一个字符串,可以接收空格并输出,需包含#include

getline(cin,str);

c++ cin输入 不定长输入

C++ 不定长输入,保存进数组,并打印

#include<iostream>
#include<vector>
using namespace std;
 
int main() {
    vector<int> arr;
    int i;
    do {
        cin >> i;
        arr.emplace_back(i);
    } while (cin.get() != '\n');
    for (auto it = arr.begin(); it != arr.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}

输出

1 2 3 4 5 6 7
1 2 3 4 5 6 7

cin.get()获取输入一个字符,包含空格或换行等特殊字符,cin自动忽视空格或换行等特殊字符,cin读取一个个数字,cin.get()读取空格...以此交叉读取。

#include<iostream>
#include<vector>
using namespace std;
 
int main() {
    vector<int> arr;
    int i;
    while (cin.get() != '\n') {
        cin >> i;
        arr.emplace_back(i);
    } 
    for (auto it = arr.begin(); it != arr.end(); it++) {
        cout << *it << " ";
    }
    cout << endl;
    return 0;
}

输出

1 2 3 4 5 6 7
2 3 4 5 6 7

cin.get()读取第一个数字,cin忽视第一个空格读取第二个数字,cin.get()读取第二个空格...以此交叉读取,因此第一个数字1没被cin读取。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++对cin输入字符的判断及分段函数处理方法示例

    本文实例讲述了C++对cin输入字符的判断及分段函数处理方法.分享给大家供大家参考,具体如下: 这两个本来也不是什么问题,然而真正遇到还是有地方可以研究的.首先是C++对于cin输入的判断,有时候你定义了一个整形,然后就是有些人就喜欢给你乱输个字符串进去,你必须处理一下,这里不像Java用抛出异常处理用户输入,也不像JavaScript用isNaN来判断,对此可参考前面的一篇<JavaScript对数字的判断与处理实例分析>.C++是用cin.fail()来判断. 至于分段函数的处理,比如要你

  • C++ cin输入的多种方法详解

    目录 前言 一.cin 1.cin >> 2.cin.get() 2.1 函数介绍 3.getline() 前言 在C++中一般使用cin来进行交互,获取用户输入信息.cin是C++编程语言中的标准输入流对象,即stream类的对象.cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘.主要用到有cin >>.cin.get().cin.getline().cin读取数据也是从缓冲区中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就

  • C/C++中带空格字符串的输入讲解

    目录 C语言 C++ string类型 总结 C语言 #include <iostream> using namespace std; int main() { char str[100]; gets(str); printf("%s\n",str); return 0; } C++ string类型 #include <iostream> #include <string> using namespace std; int main() { str

  • C++的输入与输出和格式化输出

    目录 一.C++ 输入与输出 格式化输出 1.cin与cout 2.格式化输出 2.1设置域宽及位数 2.2按进制输出 2.3设置填充符 总结 一.C++ 输入与输出 格式化输出 1.cin与cout 2.格式化输出 2.1设置域宽及位数 对于实型,cout 默认输出六位有效数据,setprecision(2) 可以设置有效位数,setprecision(n)<<setiosflags(ios::fixed)合用,可以设置小数点右边的位数. #include <iostream>

  • c++中cin实现输入字符串方式

    目录 c++ cin如何输入字符串 1.cin 2.cin.get() 3.cin.getline() 4.getline() c++ cin输入 不定长输入 c++ cin如何输入字符串 1.cin cin会过滤掉不可见字符(如空格.回车.tab等). 如果不想略过空白字符,可以使用noskipws流控制. cin>>noskipws>>input[i] 2.cin.get() cin.get()可以用来接收字符 cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以

  • mysql中in条件使用字符串方式

    目录 mysql中in条件使用字符串 场景 方法 mysql查询 in条件参数为带逗号的字符串,查询结果错误 解决方案 mysql中in条件使用字符串 场景 当sql使用in作为条件时,使用一个参数满足查询条件,直接传入字符串无法满足条件. select id,name from user where id in(?) 方法 使用FIND_IN_SET(str,strlist)函数 select id,name from user where FIND_IN_SET(id,#{strlist})

  • Java中BufferedReader类获取输入输入字符串实例

    使用Scanner来取得使用者的输入很方便,但是它以空白来区隔每一个输入字符串,在某些时候并不适用,因为使用者可能输入一个字符串,中间会包括空白字元,而您希望取得完整的字符串. 您可以使用BufferedReader类别,它是java.io包中所提供的一个类,所以使用这个类时必须先import java.io包:使用BufferedReader对象的readLine()方法必须处理IOException异常(exception),异常处理机制是Java提供给程序设计人员捕捉程序中可能发生的错误所

  • 浅谈JS中的三种字符串连接方式及其性能比较

    工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符"+"把要连接的字符串连起来: str="a"; str+="b"; 毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便. 第二种方法 以数组作为中介用 join 连接字符串: var arr=new Array(); arr.push(a);

  • mybatis 映射文件中if标签判断字符串相等的两种方式

    mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test="sex=='Y'.toString()"> <if test = 'sex== "Y"'> 注意: 不能使用 <if test="sex=='Y'"> and 1=1 </if> 因为mybatis会把'Y'解析为字

  • 从pandas一个单元格的字符串中提取字符串方式

    以titanic数据集为例. 其中name列是字符串,现在想从其中提取title作为新的一列. 例如: # create new Title column df['Title'] = df['Name'].str.extract('([A-Za-z]+)\.', expand=True) 提取其中的title作为新的一列. 以上就是对从pandas的单元格中提取字符串的认识. 这篇从pandas一个单元格的字符串中提取字符串方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

  • c++中cin/cout与scanf/printf的区别比较

    cin .cout 基本说明: cin代表标准输入设备,使用提取运算符 ">>" 从设备键盘取得数据,送到输入流对象cin中,然后送到内存. cin是输入流,cout是输出流,重载了">>"."<<"运算符,包含在头文件<iostream>中. 先把要输出的东西存入缓冲区,再输出,导致效率降低,cin是自动判断你的变量类型,比如一个char数据只能用默认的char方法取数据. scanf .prin

  • PowerShell中使用Out-File把字符串或运行结果保存到文件的方法

    本文介绍PowerShell中如何将一个字符串输出到一个文件文件中. 有这样一个任务:快速的在d:\下面建立一个1.txt文件,并在其中写入一句"Hello World!". 面对这个任务,如果我们立即去想FileStream对象,那就错了!FileStream是.NET中的传统方法了!在PowerShell中,我们可以使用Out-File这个cmdlet来一步实现这个效果. 复制代码 代码如下: PS C:\Users\spaybow> "Hello World!&q

  • Java中从键盘输入多个整数的方法

    例题:求数列的和 分别输入两个整数n,m,中间以空格隔断,n 为数列第一项,后面各项均为前一项的开根号,求前m项的和. 第一种从键盘输入并读取的方式:sc.hasNextInt() 函数和sc.nextInt()函数 hasNextInt() 判断当前输入的是否是整数 import java.util.Scanner; import java.lang.Math.*; class Test1{ public static void main(String [] args){ Scanner sc

  • 详解JavaScript 中 if / if...else...替换方式

    说说烂大街的if/if...else...,程序中用得最多的流程判断语句. 对着曾经满屏的if/if...else...,心想能不能搞点事情,折腾点浪花浪里呀浪. 对顶着"这个需求很简单,怎么实现我不管,明天上线"的程序猿,答案必须YES. "Write Less, Do More",学习进步的本质就是为了更有效率地偷懒. 废话说完,直接上方法汇总,让我们来一窥究竟: switch改写if // if 版本 var a = 1; if(a > 1 &&

随机推荐