Что-то не так с моим базовым нулевым кодом инициализации?

#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?

Изменить: введите описание изображения здесь

1 ответ

Решение

Вы объявили y как целое число. Это означает, что y можно использовать только как число. В вашем случае вы хотите, чтобы a содержал std::string. Это означает любой текст, например текст, введенный пользователем. Так что просто изменитеint y{} в std::string y;. И не забывайте, что вы можете объявить переменную в С ++ только один раз, поэтому вам придется удалить одно из объявлений для y.

Другие вопросы по тегам