zoukankan      html  css  js  c++  java
  • gets(), getline(), cin.getline()

    gets(str), getline(cin, s), cin.getline(str, len),这三个函数都是读入一行字符串的函数,下面是这三个函数的区别

    1. gets() 函数是 C 语言的函数,它接受的参数是字符数组, gets输入字符串时,不进行数组下标的检查,也就是说当你的数组长度是n时,输入超过该长度的字符串的时候,编译不会出错,但是运行的时候会出现数组越界或者内存泄漏的错误,所以现在有部分编译器已经不支持这个函数了,比如 PTA 就已经不支持这个函数了gets()函数的用法如下:

    char str[20];
    gets(str);

    2. getline() 函数是 C++ 函数,他接受的参数是 一个输入流和一个string类型的字符串,要使用这个函数必须加上 #include <string> 这个头文件和 using name space std; 这个命名空间。getline()函数的用法如下:

    #include <string>
    using namespace std;
    
    string s;
    getline(cin, s);

    3. cin.getline()函数也是 C++ 函数,它接受的参数是一个 C风格字符串(也就是一个字符数组),和一个最大长度,要使用这个函数,必须加上#include <iostream> 这个头文件 和using namespace std;这个命名空间。cin.getline()函数的用法如下:

    #include <iostream>
    using namespace std;
    
    char str[20];
    cin.getline(str, 20);

    注意:(1)cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)
       (2)当第三个参数省略时,系统默认为' '

  • 相关阅读:
    Storm分布式实时流计算框架相关技术总结
    上手开源项目的几点建议【转】
    笔试面试的路上——努力ing
    Storm配置项详解【转】
    storm UI
    leetcode-单词探索
    leetcode-全排列详解(回溯算法)
    leetcode-生成括号(回溯算法)
    leetcode-递增的三元子序列
    leetcode-最长无重复字符的子串
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/12247076.html
Copyright © 2011-2022 走看看