我试图在C ++中创建一个char数组,该数组将存储我设置的有限数量的字符(在本例中为5)。我的程序如下:
char name[5];
cout << "Enter 5 character name: ";
cin.getline(name, 5);
cout << name;
我定义了一个名为“ name”的char变量,并将其设置为仅存储5个字符,但是每当我运行该程序并尝试输入超过4个字符的内容时,程序都会截断超过4个字符的内容。即使我更改了char定义中的字符数或使用了cin语句,也会发生这种情况。
答案 0 :(得分:0)
我认为这是因为终止符为空,它也可能取决于您的C ++编译器的版本,无论如何,请在此处http://www.cplusplus.com/reference/istream/istream/getline/ ...
中阅读参考。它说:
从流中提取字符作为未格式化的输入,并将它们作为c字符串存储到s中,直到提取的字符是定界字符或n个字符已写入s(包括终止的空字符)为止。
如果它包含空字符终止符,则应在字符数组的末尾保留一个位置,这就是为什么如果您有5个字符的char数组,则cin.getline仅填充4个字符的原因。