C/C++

Вопрос про c++.

После ввода логина, когда вылазит ввод пароля и вводишь пароль, почему отображается введённый логин в строке для ввода пароля, подскажи пж как от этого избавится (
 #include  
#include
#include
#include

using namespace std;

string input(const char* message) {
cout > word;
cin.ignore(0x1000, '\n');
return word;
}

class Users {
string db_path;
unordered_map db;
public:
~Users() {
save();
}
bool load(const string& path) {
ifstream inp(path);
if (!inp.is_open()) return false;
db_path = path;
string login;
string password;
while (inp >> login >> password) {
db[login] = password;
}
inp.close();
return true;
}
bool save()const {
ofstream out(db_path);
if (!out.is_open()) return false;
for (auto& [login, password] : db) {
out
Fayzullo Shoimov
Fayzullo Shoimov
63 648
Лучший ответ
Может быть до этого был какой-то ввод с помощью cin >> ? В таком случае в буфере ввода остается висеть enter. Его, как пустую строку, считывает getline в поле логина. А сам логин уже попадает в cin >> password.

Подробнее:
оператор >> производит форматированный ввод данных, признаком окончания считается любой пробельный символ (пробел, таб, энтер). Сам пробельный символ не считывается. До оператора эти символы игнорируются, а после - остаются в буфере.
getline(cin, string) - использует символ enter как признак окончания строки. И сам этот символ стирает из буфера. Если же при вызове getline первым идет enter это считается пустой строкой (но тем не менее пустая строка - это тоже строка :) и она сохраняется в string.
Чтобы избавиться от этой проблемы, вам нужно использовать функцию cin.ignore() после ввода логина. Эта функция очищает буфер ввода, что позволяет корректно вводить следующие данные. Вот пример использования:
 cout > login; 
cin.ignore(numeric_limits::max(), '\n');

cout > password;
Анатолий Сафронов Здравствуйте, не помогло, возможно ли это из за типа string? Может как то по другому ввод сделать? Первый раз с таким сталкиваюсь, чтоб введенная строка отобразилась в другом вводе
переходи на Rust и задавай технические вопросы на Stack Overflow, к тому же не в час ночи по мск
Эльбрус Алиев тебе не стыдно быть бесполезнее петуха с нейросеткой?