C++ C++;:使用cin.getline()

C++ C++;:使用cin.getline(),c++,arrays,string,cin,C++,Arrays,String,Cin,现在我知道了cin.getline是这样工作的 cin.getline(dest字符串,放入字符串的字符数) 所以假设这个程序 char s1[8]="Hellopo"; cin.getline(s1,5); cout<<s1<<endl; chars1[8]=“Hellopo”; cin.getline(s1,5); cout第五个字符是0-终止符getline(buffer,n)最多可存储n字节,包括缓冲区中的0-终止符。然后cout第五个字符是0-终止符getli

现在我知道了
cin.getline
是这样工作的

cin.getline(dest字符串,放入字符串的字符数)

所以假设这个程序

char s1[8]="Hellopo";
cin.getline(s1,5);
cout<<s1<<endl;
chars1[8]=“Hellopo”;
cin.getline(s1,5);

cout第五个字符是0-终止符
getline(buffer,n)
最多可存储
n
字节,包括缓冲区中的0-终止符。然后
cout第五个字符是0-终止符
getline(buffer,n)
最多可存储
n
字节,包括缓冲区中的0-终止符。然后
cout第五个字符是空终止符,它标志着字符串的结束。

第五个字符是空终止符,它标志着字符串的结束。

在这种情况下将存储四个字符和一个空终止符(总共五个字符)。而
std::cout
将在找到的第一个空终止符处停止打印。

将存储四个字符加上一个空终止符(总共五个字符)。而
std::cout
将在找到的第一个空终止符处停止打印。

来自:

已提取计数-1个字符(在这种情况下,执行setstate(故障位))

这意味着如果指定
5
,则只读取
4
个字符。以及:

…然后将空字符表()存储到数组的下一个连续位置

因此,将在第四个字符后插入一个空字符。因此数组
s
将包含以下内容:

'h' == s[0]
'h' == s[1]
'h' == s[2]
'h' == s[3]
0   == s[4]
操作符来自:

已提取计数-1个字符(在这种情况下,执行setstate(故障位))

这意味着如果指定
5
,则只读取
4
个字符。以及:

…然后将空字符表()存储到数组的下一个连续位置

因此,将在第四个字符后插入一个空字符。因此数组
s
将包含以下内容:

'h' == s[0]
'h' == s[1]
'h' == s[2]
'h' == s[3]
0   == s[4]

运算符不能使用成员-
getline
s。将免费的
std::getline
std::string
一起使用。在第2部分中,“s1的其余部分”是什么意思?在s1中输入的内容就是全部内容。实际上,没有,字符串的其余部分就是。不要使用member-
getline
s。将免费的
std::getline
std::string
一起使用。在第2部分中,“s1的其余部分”是什么意思?不管输入cin放在s1中的是什么,都是存在的。实际上没有,字符串的其余部分就在那里