我的基本零初始化代码有问题吗?

is there something wrong with my basic zero initialization code?

#include <iostream>
int main()
{

int x{ 19 };
std::cout << "Hola!" << '\n';
std::cout << "Me llamo Kay\n";
std::cout << "And I am " << x << " years old\n";
std::cout << "Who are you?\n";
int y{};
std::cin >> y;
std::cout << "You are " << y << "?" << '\n';
return 0;
}

所以我想要代码 运行 一个程序:

  1. 你好!
  2. 梅拉莫·凯
  3. 我今年19岁
  4. 你是谁?
  5. [用户输入任何内容]
  6. 您是[输入的用户]?

但我得到的是:

  1. 你好!
  2. 梅拉莫·凯
  3. 我今年19岁
  4. 你是谁?
  5. [用户输入任何内容]
  6. 你是0?

编辑:enter image description here

您将 y 声明为整数。这意味着 y 只能用于包含数字。在您的情况下,您希望 a 包含 std::string。这意味着任何类型的文本,例如用户输入的文本。所以干脆把int y{}改成std::string y;。并且不要忘记您只能在 C++ 中声明一次变量,因此您必须删除 y 的声明之一。