cin.getline()没有将\ 0添加到数组C ++的末尾

时间:2013-04-09 14:09:16

标签: c++ arrays char cin

我的代码行如下:

const int maxtext=1000;
char text[maxtext];

cin.getline(text,maxtext);

然后当我试图看到

sizeof(text)

它显示了我的maxtext,而不是输入的长度。

我做错了什么?

PD:我不能使用<的功能。字符串>库。

1 个答案:

答案 0 :(得分:4)

sizeof(text)不会检查text的内容(它返回对象的字节大小,请参阅sizeof),以便{{1}中是否存在空终止字符无关紧要。请改用text。在使用strlen(text)

之前,请确保已填充text
text

使用std::getline()使用std::string可以避免硬编码固定大小以便阅读:

if (cin.getline(text, maxtext))
{
}