c语言getline函数什么意思,详解C++ cin.getline函数

cin

虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。

当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。

例:

// This program illustrates a problem that can occur if

// cin is used to read character data into a string object.

#include

#include // Header file needed to use string objects

using namespace std;

int main()

{

string name;

string city;

cout << "Please enter your name: ";

cin >> name;

cout << "Enter the city you live in: ";

cin >> city;

cout << "Hello, " << name << endl;

cout << "You live in " << city << endl;

return 0;

}

预期结果:

Please enter your name: John Doe

Enter the city you live in: Chicago

Hello, John Doe

You live in Chicago

实际结果:

Please enter your name: John Doe

Enter the city you live in: Hello, John

You live in Doe

在这个示例中,用户根本没有机会输入 city 城市名。因为在第一个输入语句中,当 cin 读取到 John 和 Doe 之间的空格时,它就会停止阅读,只存储 John 作为 name 的值。在第二个输入语句中, cin 使用键盘缓冲区中找到的剩余字符,并存储 Doe 作为 city 的值。

cin.getline()

cin.getline 允许读取包含空格的字符串。它将继续读取,直到它读取至最大指定的字符数,或直到按下了回车键。

此函数会一次读取多个字符(包括空白字符)。它以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止。若不指定结束符,则默认结束符为'\n'。

这个函数有三个参数,其语法为:cin.getline(字符指针(char*),字符个数N(int),结束符(char));

第一个参数为第一个读取的字符的位置,通常为数组名。

第二个参数为读取的字符的个数。

第三个参数是结束符,可以省略,省略则默认为回车键结束。

例:

// This program demonstrates cinT s getline function

// to read a line of text into a C-string.

#include 、

using namespace std;

int main()

{

const int SIZE = 81;

char sentence[SIZE];

cout << "Enter a sentence: ";

cin.getline (sentence, SIZE);

cout << "You entered " << sentence << endl;

return 0;

}

输出结果:

Enter a sentence: To be, or not to be, that is the question.

You entered To be, or not to be, that is the question.

可以看到,使用cin.getline函数输入带有空格的字符串。

在网络编程中,写一个简单的回射程序时,可以使用cin.getline来输入数据。

#define MAX_LINE 10000

char SendBuffer[MAX_LINE];

cin.getline(SendBuffer, sizeof(SendBuffer));

以上就是详解C++ cin.getline函数的详细内容,更多关于cin.getline函数的资料请关注得牛网其它相关文章!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值