Почему выполняется сразу все условие if/else C++?
#include "std_lib_facilities.h"
using namespace std;
int main()
{
char registr;
char login;
char passlog;
char a;
char name, pass, pass1;
char test;
char test1;
cout << "Если ты еще не зарегистрированный пользователь\nнапиши registr\nесли являешься участником то login: ";
cin >> a;
if (a == registr)
{
cout << "Придумай себе имя: ";
cin >> name;
cout << "Придумай себе пароль: ";
cin >> pass;
cout << "Подтвердите пароль: ";
cin >> pass1;
if (pass == pass1)
{
cout << "Cпасибо за регистрацию! Уважаемый " << name << "\nНадеюсь мы подружимся!\n";
}
else
{
cout << "Пароли не совпадают, проверьте правильность написания и повторите еще!";
return pass1;
}
}
else
{
cout << "С возвращением, напиши свой логин!: ";
cin >> login;
cout << "С возвращением, " << login << "напиши свой пароль!: ";
cin >> passlog;
if (login == test && passlog == test1)
{
cout << "Добро пожаловать домой " << login << "!\n";
}
else
{
cout << "Ошибка при вводе логина или пароля, повторите попытку заново!";
return login;
}
}
keep_window_open();
return 0;
}
Я новичек в С++ (дня 3 всего учу) написал САМ код, но при запуске сразу выполняется все тело конструкции if тоесть оно не спрашивает мол твой логин/пароль, я просто как в питоне все print-ует на экран просто. Как сделать так чтобы выводилось по очередно
Ответы (1 шт):
Язык Си типовый. У него регистрация переменной имеет вид тип символ [= значение];.
Как в питоне не знаю, но строка в Си обозначается кавычками "строка". А вы смешали переменные со строками. Это разные вещи.
Тип строки в Си++ это string, а не char.
Добавляете заголовки библиотеки для типа строка и потокового вывода на консоль:
# include <string>
# include <iostream>
Затем задаёте правильный тип строки , имя переменной и равно какому-нибудь значению.
int main()
{
string registr = "registr";
string login;
string passlog;
string a;
string name, pass, pass1;
string test = "test" ;
string test1 = "test1";
Функция main имеет возвращаемое значение с типом int. По-этому возвращать строку нельзя, а только целое число.
{
cout << "Пароли не совпадают, проверьте правильность написания и повторите еще!";
//return pass1; неправильно
return 1;
}
//...
{
cout << "Ошибка при вводе логина или пароля, повторите попытку заново!";
//return login; неправильно
return 1 ;
}