• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd w kodzie

Object Storage Arubacloud
0 głosów
219 wizyt
pytanie zadane 19 lipca 2015 w C i C++ przez user125 Początkujący (400 p.)

Witam, dopiero zacząłem uczyć się języka c++ i napotkałem się na błąd:

#include <iostream>

using namespace std;

int main()
{
    int login, haslo;
    cout<<"Witamy na facebooku"<<endl;
    cout<<"By sie zalogowac prosze podac swoj login i haslo"<<endl;

    cout<<"Podaj login: "<<endl;
    cin>>login;
    cout<<"Podaj haslo: "<<endl;
    cin>>haslo;

 if ((login=="admin")&&(haslo=="haslo12345"))
    {
        cout<<"Haslo poprawne"<<endl;
    }

    else
    {
        cout<<"Prosze zalogowac sie jeszcze raz"<<endl;
    }

    return 0;
}

w linijce 16 tam gdzie zaczyna się instrukcja warunkowa pokazało mi że jest błąd nie wiem o co chodzi może ktoś mi pomóc ?

3 odpowiedzi

+2 głosów
odpowiedź 19 lipca 2015 przez figorin Bywalec (2,040 p.)
Wydaje mi się,że login powinien być typu string, a nie int jak ty to zadeklarowałeś.Chodzi o to,że int może zawierać tylko liczby,więc porównanie nie jest prowidłowe.
komentarz 19 lipca 2015 przez user125 Początkujący (400 p.)
A no tak przecież login to słowo a słowa trzeba zadeklarować w typie string. Dzięki :)
komentarz 19 lipca 2015 przez Adrian1999 Nałogowiec (34,570 p.)
Niekoniecznie, string jest wszechstronny, obsługuje i liczby i znaki. Jednak to co w nim jest, jest traktowane jako znak nie jako liczba więc np

string a="15",b="20"; to std::cout<<a+b"<<std::endl; // wyświetli wynik 1520

cóż podsumowując, string obsługuje wszystko, lecz wszystko traktuje jako tekst, jeżeli chciałbyś dodać zgaduje musisz castować stringa do inta.
+1 głos
odpowiedź 19 lipca 2015 przez Arkadiusz Waluk Ekspert (287,950 p.)

Jako iż jesteś nowy to napiszę od razu że zawsze warto podać treść błędu bo wtedy łatwiej pomóc. Tutaj dość mały kod więc widać od razu że masz zmienne "login" i "haslo" zdefiniowane jako int (liczba) a chcesz porównać czy nie są one tekstem i pewnie też ten tekst próbujesz do nich wpisywać. No tak się nie da, jeśli chcemy żeby w zmiennej przechowywać tekst musi być typu string.

Czyli powinno być przy deklaracji 

string login, haslo;

A poza tym ten warunek może wyglądać tak, te dodatkowe nawiasy są w tym przypadku zbędne

if (login=="admin" && haslo=="haslo12345")
0 głosów
odpowiedź 19 lipca 2015 przez Dorion300 Szeryf (90,250 p.)
Zmień z int na string przy login i hasło (7 linijka)

Podobne pytania

0 głosów
1 odpowiedź 123 wizyt
0 głosów
2 odpowiedzi 116 wizyt
pytanie zadane 14 lutego 2023 w C i C++ przez piotr_domanski Bywalec (2,080 p.)
0 głosów
1 odpowiedź 141 wizyt

92,624 zapytań

141,478 odpowiedzi

319,822 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...