0

我有如下代码行:

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

cin.getline(text,maxtext);

然后当我尝试查看

sizeof(text)

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

我做错了什么?

PD.:我不能使用 <string> 库的函数。

4

1 回答 1

4

sizeof(text)不检查的内容text(它返回对象的字节大小,请参阅sizeof)因此是否存在空终止字符text是无关紧要的。改为使用strlen(text)。确保text在使用之前已填充text

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

通过使用std::getline()with可以避免硬编码固定大小以供读取std::string

std::string text;
if (std::getline(std::cin, text))
{
}
于 2013-04-09T14:12:24.210 回答