getline和cin.getline 的区别

定义

The C++ getline() is a standard library function that is used to read a string or a line from an input stream.   
It is a part of the <string> header. The getline() function extracts characters from the input stream and appends it to the string object until the delimiting character is encountered.  
 While doing so the previously stored value in the string object str will be replaced by the input string if any.
翻译:c++的getline函数是标准库函数,是从一个输入流读入一个字符串或者一行.
是头文件<string>的一部分.当遇到界定符(不放入字符串)时,
getline()函数把输入流转换成字符添加到string对象中.然后之前定义的存储字符串对象会被输入的字符串所替换.

语法

istream& getline(istream& is, string& str, char delim); 专用于c语言字符数组,如cin.getline()
说明: is 输入流对象,告诉getline()从哪里读入这个流.
		 str 字符串对象,用来存储读入的流.
		 delim 告诉getline() 在读到该字符后,停止读入字符.
重载函数:专用于string
istream& getline (istream& is, string& str);
说明: 此函数几乎和第一个相似.唯一的区别是:该函数以\n为默认的界定符.
string是动态生成,在运行期间,如有必要可以申请更多的内存.没有内存浪费和预先配置.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,getline()和cin.getline()都可以用来读取一行输入,但它们之间有一些区别getline()函数是一个标准库函数,可以从任何输入流中读取一行文本,包括文件和键盘输入。它的语法如下: ```c++ getline(istream& is, string& str, char delim); ``` 其中,is是输入流,str是存储读取行的字符串,delim是可选的分隔符,如果没有指定分隔符,则默认为换行符。 相比之下,cin.getline()是一个istream类的成员函数,只能从标准输入流中读取一行文本。它的语法如下: ```c++ cin.getline(char* str, int n, char delim); ``` 其中,str是存储读取行的字符数组,n是字符数组的大小,delim是可选的分隔符,如果没有指定分隔符,则默认为换行符。 因此,getline()函数比cin.getline()更灵活,可以从任何输入流中读取一行文本,并且可以使用string类型存储读取行。而cin.getline()只能从标准输入流中读取一行文本,并且只能使用字符数组存储读取行。 以下是一个使用getline()函数的例子: ```c++ #include <iostream> #include <string> using namespace std; int main() { string str; getline(cin, str); cout << "this is the getline: " << str << endl; return 0; } ``` 以下是一个使用cin.getline()函数的例子: ```c++ #include <iostream> using namespace std; int main() { char ch[20]; cin.getline(ch, 10); cout << "this is the cin.getline: " << ch << endl; return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值