C ++字符数组输入的字符数不能超过4个

时间:2018-09-10 23:37:16

标签: c++

我试图在C ++中创建一个char数组,该数组将存储我设置的有限数量的字符(在本例中为5)。我的程序如下:

char name[5];

cout << "Enter 5 character name: ";
cin.getline(name, 5);

cout << name;

我定义了一个名为“ name”的char变量,并将其设置为仅存储5个字符,但是每当我运行该程序并尝试输入超过4个字符的内容时,程序都会截断超过4个字符的内容。即使我更改了char定义中的字符数或使用了cin语句,也会发生这种情况。

1 个答案:

答案 0 :(得分:0)

我认为这是因为终止符为空,它也可能取决于您的C ++编译器的版本,无论如何,请在此处http://www.cplusplus.com/reference/istream/istream/getline/ ...

中阅读参考。

它说:

  

从流中提取字符作为未格式化的输入,并将它们作为c字符串存储到s中,直到提取的字符是定界字符或n个字符已写入s(包括终止的空字符)为止。

如果它包含空字符终止符,则应在字符数组的末尾保留一个位置,这就是为什么如果您有5个字符的char数组,则cin.getline仅填充4个字符的原因。