gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 23:16:33 25 4
gpt4 key购买 nike

我有一行代码如下:

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

cin.getline(text,maxtext);

然后当我尝试查看

sizeof(text)

它显示的是最大文本,而不是输入的长度。

我做错了什么?

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

最佳答案

sizeof(text) 不检查 text 的内容(它返回对象的字节大小,参见 sizeof )所以是否以 null 终止text 中存在的字符无关紧要。请改用 strlen(text)。确保在使用 text 之前填充了 text:

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

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

std::string text;
if (std::getline(std::cin, text))
{
}

关于c++ - cin.getline() 没有将\0 添加到数组 C++ 的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15904210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com