如何读取一个整行的字符串

scanf()在对输入的字符串有空格会自动截取空格之前的部分  

可以通过下面三个函数读取一个整行的字符串

gets(),C语言函数,接受的参数是字符数组,gets()在输入字符串时,不进行数组下标的检查

cin.getline()是一个C++函数,与gets区别是在输入的时候,会有一个长度的参数,防止数组越界可不会发生缓冲区溢出,通常与std::string一起使用

getline()也是C++里的函数,接受的一个参数是输入流,另一个是string类型的字符串。

#include <bits/stdc++.h>
using namespace std;
int main()
{
    char s[100];
    //scanf("%s",&s);
     //gets(s);
    cin.getline(s,100);
     printf("%6.3s\n",s);

    return 0;
}




#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;
    // scanf("%s",&s);
    // gets(s);
    // cin.getline(s, 100);
    getline(cin, s);//这个函数的作用是从标准输入流cin中读取一行字符串,并将其存储到变量s中。换句话说,这个函数用来读取用户输入的一行字符串并存储在s中
    // printf("%6.3s", s); // 错误的输出方式
    cout << s.substr(0, 6) << endl; // 正确的输出方式
    //s.substr(0, 6)表示从字符串s的第一个字符开始截取长度为6的子字符串
    return 0;
}

可以直接读取到std::string对象中,不需要指定长度,也可以指定一个分隔符结尾

gets、cin.getline读取的都是char * 类型的字符串

getline读取的是string类型的字符串

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 23:02:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 23:02:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 23:02:03       87 阅读
  4. Python语言-面向对象

    2024-04-27 23:02:03       96 阅读

热门阅读

  1. 顺序排列的二叉树的删除

    2024-04-27 23:02:03       28 阅读
  2. 如何用代码制作一个想要的网站?

    2024-04-27 23:02:03       37 阅读
  3. 状态模式:管理状态转换的策略

    2024-04-27 23:02:03       38 阅读
  4. 请求头headers中的信息

    2024-04-27 23:02:03       35 阅读
  5. SpringBoot的核心内容之自动装配

    2024-04-27 23:02:03       33 阅读
  6. C# 学习笔记

    2024-04-27 23:02:03       31 阅读
  7. C# Solidworks二次开发:枚举应用实战(第六讲)

    2024-04-27 23:02:03       30 阅读
  8. centOS7.9| 无root安装 openssl 1.1.1

    2024-04-27 23:02:03       30 阅读
  9. Python中的进制转换函数详解

    2024-04-27 23:02:03       37 阅读