C++输入函数的应用

最近因为找工作的事情,在刷一些编程题,也陆陆续续参加了一些笔试,一般编程中使用的语言是C++,因为编程题会有时间的限制,C++的效率最高,不容易出现超时的问题所以使用最多的语言就是C++。

在编程中,其中最容易遇到的问题就是输入问题。下面就讨论一下C++常用的一些输入函数。

概述

C++中几个输入函数有:

  • cin
  • cin.get()
  • cin.getline()
  • getline()
  • gets()
  • getchar()

cin

  • 输入数字,以“回车”或者空格结束

    1
    2
    3
    int a,b;
    cin>>a>>b; // 按行输入对应的参数
    cout<<a+b<<endl;
  • 输入一个字符串,遇“空格”、“TAB”、“回车”都结束

    1
    2
    3
    char a[20];
    cin>>a;
    cout<<a<<endl;

cin.get()

  • cin.get(str)可以用来接收字符,str为字符数组名。

    1
    2
    3
    char ch;
    ch=cin.get(); //或者cin.get(ch);只能获取一个字符
    cout<<ch<<endl;
  • cin.get(str,n)用来接收一行字符串,可以接收空格,str为字符数组名,n为接收字符数目。

    1
    2
    3
    char a[20];
    cin.get(a,20); //有些类似getline。可以输入多个单词,中间空格隔开。
    cout<<a<<endl;
  • cin.get()没有参数主要是用于舍弃输入流中的不需要的字符,或者舍弃回车,弥补cin.get(字符数组名,接收字符数目)的不足.

cin.getline()

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

    1
    2
    3
    char m[20];
    cin.getline(m,5); //与上面基本相同。
    cout<<m<<endl;
1
2
3
4
5
输入:jkljkljkl
输出:jkljkljkl

输入:jklf fjlsjf fjsdklf
输出:jklf fjlsjf fjsdklf

getline()

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

    1
    2
    3
    string str;
    getline(cin,str);
    cout<<str<<endl;
1
2
3
4
5
输入:jkljkljkl //VC6中有个bug,需要输入两次回车。
输出:jkljkljkl

输入:jkl jfksldfj jklsjfl
输出:jkl jfksldfj jklsjfl

gets()

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

    1
    2
    3
    char m[20];
    gets(m); //不能写成m=gets();
    cout<<m<<endl;
1
2
3
4
5
输入:jkljkljkl
输出:jkljkljkl

输入:jkl jkl jkl
输出:jkl jkl jkl
1
2
3
4
5
6
7
8
9
10
11
// 多维输入
char m[3][20];
for(int i=0;i<3;i++)
{
cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
gets(m[i]);
}

cout<<endl;
for(int j=0;j<3;j++)
cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;

getchar()

  • /接受一个字符,需包含#include<string>

    1
    2
    3
    char ch;
    ch=getchar(); //不能写成getchar(ch);
    cout<<ch<<endl;
1
2
3
4
输入:jkljkljkl
输出:j

//getchar()是C语言的函数,C++也可以兼容,但是尽量不用或少用;

常用的应用

  • 输入单个数字

    1
    2
    int a;
    cin >> a;
  • 输入多个数字

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       // 默认是空格或者回车键为间隔
    int a, b;
    cin >> a >> b;


    // 以逗号隔开的多个数字输入
    int n, m;

    cin >> n;
    }

    if (cin.get() == ',') {
    cin >> m;
    }
  • 输入一维数组(默认以空格为间隔),#include <vector>

    1
    2
    3
    4
    5
       vector<int> arr(n, 0);

    for (int i = 0; i < m; i++){
    cin >> arr[i];
    }
  • 输入二维数组(默认以空格为间隔),#include <vector>

    1
    2
    3
    4
    5
    6
    7
       vector<vector<int>> arr(m, vector<int>(n, 0));

    for (int i = 0; i < m; i++){
    for (int j = 0; j < n; j++){
    cin >> arr[i][j];
    }
    }
  • ,为间隔的输入数组

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 二维数组,以逗号为间隔
    vector<vector<int>> S(n, vector<int>(m, 0));

    for (int i = 0; i < n; i++){
    cin >> S[i][0];
    for (int j = 1; j < m; j++){
    if (cin.get() == ',') {
    cin >> S[i][j];
    }
    }
    }
  • 输入不定长的数组(检测回车键)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       // 定义二维数组
    vector<vector<int>> F(n, vector<int>(n, -1));

    for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
    int temp;
    cin >> temp;
    F[i][j] = temp;
    if (cin.get() == '\n')
    break;
    }
    }
  • 输入字符串

    1
    2
    3
    4
       // 已知字符串的长度,注意最后一位是\0
    char a[21];
    cin >> a;
    cout << a << endl;

输入的时候需要加入越界检测如下,需要0<=n<=100

1
2
3
   if ((n < 0) || (n > 100)) {
return 0;
}

参考:C++中输入字符串的几种方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/242253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#绘图及图像

C#绘图及图像 绘图的基本方法 绘图的应用

PHP开发API

引言如何使用 PHP 开发 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09; 呢&#xff1f; 做过 API 的人应该了解&#xff0c;其实开发 API 比开发 WEB 更简洁&#xff0c;但可能逻辑更复杂&#xff0c;因为 API 其实就是数据输出&a…

热部署和热加载

2018-8-22今天入职第二天&#xff0c;看到老大在群里发了一个go热加载实现的链接&#xff0c;之前没有听说过热加载&#xff0c;所以搜索了一下&#xff0c;下面是关于热部署和热加载的相关整理。 引言在项目线上更新时&#xff0c;可能会遇到需要热部署的情况&#xff0c;虽然…

C#实现定时器

C#实现定时器 方法一 布局 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace…

HTTP请求流程

hhtp请求流程首先http是一个应用层的协议&#xff0c;在这个层的协议&#xff0c;只是一种通讯规范&#xff0c;也就是因为双方要进行通讯&#xff0c;大家要事先约定一个规范。 http请求与响应的步骤如下&#xff1a; URL解析、域名解析 输入URL的时候&#xff0c;首先浏览器会…

PHP执行外部程序的方法

引言在一些特殊情况下&#xff0c;会使用PHP调用外部程序执行&#xff0c;比如&#xff1a;调用shell命令、shell脚本、可执行程序等等 PHP执行外部程序的方法 system()&#xff0c;system函数将执行的结果直接输出exec()&#xff1a;执行一个外部程序&#xff0c;将输出结果保…

C语言函数变量的引用

C语言函数变量的引用 有时候&#xff0c;你想引用函数中的某些变量。 #include <stdio.h>int main() {struct guoba{int pang;int piqi;};void tong(int *p){int month1 3;int month5 8;struct guoba xiaoguoba;xiaoguoba.pang month1 month5;*p xiaoguoba.pang ;…

php 终止程序的方法——return、exit()、die()

php中终止程序的运行有三种方式&#xff1a; return&#xff0c;主脚本程序中使用exit()&#xff0c;脚本中使用die()&#xff0c; 脚本中使用三者所在的脚本文件他们之后的代码都不会执行了。php开发模式下想直接看到变量的值使用exit()、die()。 returnreturn是语言结构而不是…

Eric Evans说DDD还未结束

在Explore DDD 2018大会上&#xff0c;Eric Evans做了“怀疑、乐观和实用主义”的主题演讲&#xff0c;他在演讲中表示&#xff0c;“DDD还没有结束”。在“领域驱动设计”这本书出版十五年之后&#xff0c;作者对这个想法长期以来如此流行表示了惊讶之情。他强调&#xff0c;D…

mark

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

C语言的进阶-指针的应用

指针的应用 #include <stdio.h> void swap(int *p,int *q); int main() {int a 5;int b 8;swap(&a,&b);printf("a%d,b%d\n",a,b);return 0; }void swap(int *p,int *q) {int t *p;*p *q;*q t; }函数只能返回一个值&#xff01; 可以通过参数返回多…

Go简单开始

Go是一门编译型语言&#xff0c;Go语言的工具链将源代码及其依赖转换成计算机的机器指令2。Go语言提供的工具都通过一个单独的命令 go 调用&#xff0c; go 命令有一系列子命令。最简单的一个子命令就是run。这个命令编译一个或多个以.go结尾的源文件&#xff0c;链接库文件&am…

C语言进阶-指针与数组

C语言进阶-指针与数组 q可以改变指向的内容&#xff0c;但不能改变指向的地址 p可以改变指向地址&#xff0c;但不能改变指向内容

测试下文章

这是一篇测试 编辑

发布文章测试

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

C语言进阶-指针运算

C语言进阶-指针运算 #include <stdio.h>int main() {char a[] {0,1,2,3,4,5,6,7,8,9};char *p a;printf("p%d\n",p);printf("p1%d\n",p1);int b[] {0,1,2,3,4,5,6,7,8,9};int *q b;printf("q%d\n",q);printf("q1%d\n",q1);r…

vim的模式及常用命令

vim的模式正常模式 (Normal-mode) &#xff1a; 左下角显示文件名或为空。 启动vim后默认处于正常模式。不论位于什么模式&#xff0c;按下<Esc>键(有时需要按两下&#xff09;都会进入正常模式。 插入模式 (Insert-mode)&#xff1a;左下角显示–INSERT– 在正常模式中…

C语言进阶-动态内存分配

C语言进阶-动态内存分配 #include <stdio.h> #include<stdlib.h>int main() {int number;int *a;int i;printf("请输入数组的数量");scanf("%d",&number);//int a[number];a(int*)malloc(number*sizeof(int));//开辟数组的大小for(i 0;i&…