Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Вопрос по c++

Вот написал код, создал 2 переменные login и password, и прошу пользователя заполнить их. Типо написать свой логин и пароль

После запуска мне дает написать логин, но не дает написать пароль. Пишу логин, нажимаю enter и у меня моментально пишет "аккаунт создан", хоть я должен вводить свой пароль. Почему прога скипает это? Я ведь все также как и сверху написал

По дате
По рейтингу
Аватар пользователя
Новичок
9мес

В вашем коде проблема заключается в том, что вы используете тип `int` для переменных `login` и `password`. Это приводит к тому, что программа ожидает целочисленные значения и не позволяет ввести строку, как это требуется для логина и пароля.

Для исправления кода, необходимо использовать тип `std::string`. Вот исправленный вариант вашего кода:

12345678910111213141516171819
 #include <iostream> 
#include <string> 
 
int main() { 
    setlocale(LC_ALL, "RU"); 
    std::string login, password; 
     
    std::cout << "Создание аккаунта" << std::endl; 
 
    std::cout << "Введите логин: "; 
    std::cin >> login; 
 
    std::cout << "Придумайте пароль: "; 
    std::cin >> password; 
 
    std::cout << std::endl << "Аккаунт успешно создан!" << std::endl; 
 
    return 0; 
}  
Аватар пользователя
Высший разум
9мес

Строки надо объявлять строками, а не числами.

Построчный ввод лучше делать не через >>, а через getline.
Но если хочешь именно >>, то очищать буфер ввода после получения строки.
https://ru.stackoverflow.com/questions/562229/Очистка-буфера-ввода-cin