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

string s;
getline(cin, s);

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

#include <iostream>
using namespace std;

char str[20];
cin.getline(str, 20);

注意:(1)cin.getline()实际上有三个参数,cin.getline(接收字符串的变量,接收字符个数,结束字符)

(2)当第三个参数省略时,系统默认为'\n'

原文链接: https://www.cnblogs.com/hi3254014978/p/12247076.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/192555

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:05
下一篇 2023年2月12日 下午6:05

相关推荐