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

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

char str[];
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[];
cin.getline(str, );

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

gets(), getline(), cin.getline()的更多相关文章

  1. 日常笔记4关于cin、cin.get()、cin.getline()、getline()使用区别

    1.关于PAT中段错误 使用字符数组出现错误: char str[256]; 报错段错误,然后改用C++中的string 改成: string str; 同char数组一样,也可以使用下标来取单个字符 ...

  2. cin, cin.getline等函数

    char s[100]; cin>>s;         // 输入一个字符串,遇“空格”.“TAB”.“回车”都结束 cin.getline(s, 20);    // cin.get( ...

  3. [原创]cin、cin.get()、cin.getline()、getline()、gets()、getchar()的区别

    这几个输入函数经常搞不清具体特点和用法,这里稍作总结 一.cin>> 1.最基本用法,输入一个变量值 2.输入字符串,遇“空格”.“TAB”.“回车”结束,比如输入“hello world ...

  4. C++中关于cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    1.cin>> 用法1:最基本,也是最常用的用法,输入一个数字: 注意:>> 是会过滤掉不可见的字符(如 空格 回车,TAB 等) cin>>noskipws> ...

  5. C++语言中cin cin.getline cin.get getline gets getchar 的用法实例

    #include <iostream> #include <string> using namespace std; //关于cin cin.getline cin.get g ...

  6. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法----细节决定成败 (sort用法)

    C++中cin.cin.get().cin.getline().getline().gets()等函数的用法 学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有 ...

  7. 模板:cin.getline用法

    Ref: http://baike.baidu.com/view/2383876.htm   此函数会一次读取多个字符(包括空白字符).它以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字 ...

  8. C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行) 1.cin 2.cin.get ...

  9. cin、cin.get()、cin.getline()、getline()、gets()等函数的用法

    学C++的时候,这几个输入函数弄的有点迷糊:这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息:1.cin1 ...

随机推荐

  1. 如何用Eagle for Mac查看GIF动图的图文教程?

    Mac版Eagle怎样打开查看GIF动图?eagle mac版以其功能强大,设计简洁等特点深受用户的喜爱.在Eagle众多功能中,打开查看GIF动图这一功能也是非常简单又好用的.今天小编要给大家分享的 ...

  2. eclipse 项目资源与 java 编译器级别不致总是;说明资源路径位置类型Java编译器级别不匹配t

    问题:Description Resource Path Location Type Java compiler level does not match t 今天在自己项目中整合HBase API的 ...

  3. Just a Hook HDU - 1698Just a Hook HDU - 1698 线段树区间替换

    #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us ...

  4. 【NLP】暑假课作业1 - 中文分词(前向匹配算法实现)

    作业任务: 使用98年人民日报语料库进行中文分词训练及测试. 作业输入: 98年人民日报语料库(1998-01-105-带音.txt),用80%的数据作为训练集,20%的数据作为验证集. 运行环境: ...

  5. Window Api 通过账号密码访问共享文件夹

    using System; using System.Runtime.InteropServices; namespace PushGCodeService { public class Shared ...

  6. Pr常用的键盘操作

    Pr常用的键盘操作 Shift选中切开的小段 Alt复制效果

  7. JN_0013:win10快速回桌面

    4.最后一种方法是最为实用的方法.按快捷键[windows键+D键],如下图所示,两键同时按,或者先按住windows键不放再按D键.这种方法在任何时候都是有用的,并且熟练使用后可以达到非常快的速度: ...

  8. powerdesigner两数据库对比

    1. powerdesigner两数据库对比 1.1. 问题 position属性不一致,但这并不影响两数据库的结构,我们不需要把它当警告显示出来 1.2. 解决办法

  9. 剑指offer-面试题14-剪绳子-贪婪算法

    /* 题目: 给定一个长度为n的绳子,把绳子剪为m段,(n>1,m>1) 求各段绳子乘积的最大值. */ /* 思路: 贪婪算法. 当绳子的长度大于5时,尽可能多的剪长度为3的绳子:当剩下 ...

  10. 洛谷【P2022 有趣的数】 题解

    题目链接 https://www.luogu.org/problem/P2022 题目描述 让我们来考虑1到N的正整数集合.让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10 ...