c++ - std::cout不显示任何内容,也不显示std::cin要求输入

标签 c++

这个问题引起的代码是这个

#include <iostream>

int main() {
    char name[20];
    std::cout << "enter a name....";
    std::cin >> name;
    std::cout << "the name you entered was " << name; 
    system("pause");
}
相反,它显示了一些奇怪的东西:
p 4464 70000 7000028207Press any key to continue . . .
我正在使用Dev-C++ IDE及其默认编译器。
这是为什么?

最佳答案

如果您告诉我们您所输入的确切信息会很好,但是问题可能是您没有考虑空终止符'\0'。当您使用std::cin时,它将在输入流的末尾添加一个空终止符。因此,如果输入的字符数为20个,则实际上应使用大小为21的char数组。当使用20个字符时,程序将在数组末尾写入null终止符,这将导致 undefined 的行为。

关于c++ - std::cout不显示任何内容,也不显示std::cin要求输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63382002/

相关文章:

C++ 从两个类中确定 void* 的类型

c++ - 编译 GLFW 时遇到问题, undefined symbol

c++ - 输入的机器学习数据结构最佳实践

c++ - C++ 中的排序函数如何工作?

c++ - 为什么这两个代码片段彼此等价(指针)

c++ - 谷歌测试夹具 : passing a class member size

c++ - 无法将 'double (*)[5]' 转换为 'double' 作为返回

android - dlopen 失败 : library "libtest.so" not found

c++ - 为什么 getline 如此不一致?

C++:删除打印机队列