Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么字符[]数组“\0”被std::cin终止?_C++_Arrays - Fatal编程技术网

C++ 为什么字符[]数组“\0”被std::cin终止?

C++ 为什么字符[]数组“\0”被std::cin终止?,c++,arrays,C++,Arrays,输出: dog 预期产出: dog 如果指针确实与指针及其保留给定内容的能力有关,那么我缺少的关于指针的基本内容是什么?即使是strlensuffix也会产生3,而我预计是25。例如,打印后缀[6]根本不打印任何内容,甚至不打印空格当您使用cin和cout读取或写入字符*时,它将其视为C样式字符串。cin在行尾添加一个空终止符,并且只能在到达空终止符之前进行写入。strlen对字符进行计数,直到出现空终止符 后缀[6]将包含分配数组时该字节中发生的任何随机垃圾。如果您在cout中没有看到任何

输出:

dog
预期产出:

dog
如果指针确实与指针及其保留给定内容的能力有关,那么我缺少的关于指针的基本内容是什么?即使是strlensuffix也会产生3,而我预计是25。例如,打印后缀[6]根本不打印任何内容,甚至不打印空格

当您使用cin和cout读取或写入字符*时,它将其视为C样式字符串。cin在行尾添加一个空终止符,并且只能在到达空终止符之前进行写入。strlen对字符进行计数,直到出现空终止符

后缀[6]将包含分配数组时该字节中发生的任何随机垃圾。如果您在cout中没有看到任何内容,则cin会在dog之后安装一个null;结果,cout停止在dog之后显示字符。这是用C++方法识别字符串的结尾。
此处没有任何指针

可能以null结尾。当然strensuffix将产生三个,您输入了一个三个字符的字符串。后缀[3 ]将是空字符,它不会打印出未初始化的元素。您丢失的基本东西是C++ cOUT和CIN透明地将char []当作C字符串!不神秘。suffx[]保存{'d','o','g','\0',…}。您似乎希望运算符>>char[]不会NUL终止其输入。1.文件上说会的。2.如果不这样做,请思考其含义:这将迫使您每次都将整个数组归零。@Thilo好吧,我现在知道您是对的。但问题还是很糟糕,就说标题吧。。。。strlen也会前进,直到找到一个空终止符。
dog
dog#*(!&!XΓ◘♪<♣@!(!)XΓ◘♪<♣☺XΓ◘♪<♣