【发布时间】:2018-11-11 15:18:47
【问题描述】:
如果我声明一个字符数组:char arr[200]
然后我随后使用函数 cin 将值读入arr[200]
然后我在命令行窗口中输入:abcd
是否有一个空终止:\0 自动添加到输入末尾的数组中?
(我不这么认为,因为我使用 cin 函数对其进行了测试: cin>>abcd )
谁能给我解释一下为什么?
下面是我用来测试的代码的 sn-p
char arr[200]
int count=0;
int i=0;
cin>>arr // i type into command window:abcd
while (arr[i] != '\0')
{
count++;
i++
}
我的计数值不会是 4,而是像 43,因此我得出结论,字符数组在 cin 函数后不是空终止的
【问题讨论】:
-
我编辑了这个问题以便更好地理解
-
i 和 count 均未初始化。
-
我试过初始化,结果是一样的
-
@Lim:您正在测量在读入数组之前的长度。那时,它包含垃圾,因此您可以获得任何结果。您在此处发布的代码正确地测量了 阅读后的长度。
标签: c++ user-input c-strings