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

Pobieranie danych z pliku tekstowego i wykorzystanie ich w programie wraz z ich poprawnością C++

Object Storage Arubacloud
0 głosów
366 wizyt
pytanie zadane 5 marca 2017 w C i C++ przez PolskiSiersciuch Nowicjusz (170 p.)
Witam. Mam problem z moim programem. W funckji "Zaloguj" Chciałbym aby użytkownik wpisał login i hasło. Jeżeli wpisze poprawny login i hasło to program wyświetli komunikat "Udało się" itp.Jeżeli natomiast login i hasło są błędne to program nie przepuści dalej. Dane miałby program odczytać pliku tekstowego. Oto co udało mi się narazie zrobić:

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{
    string NazwaUz;
    string Haslo;
    int numer;
    int jeden, dwa;
    int komenda;

    cout << "Witaj! Jezeli chcesz zarejestrowac sie w systemie wpisz ,,zarejestruj,,"<<endl<<"Jezeli jestes juz zalogowany w systemie wpisz login i haslo" <<endl<<endl;

    cout<<"1.Zaloguj"<<endl<<"2.Zarejestruj"<<endl;
    cin>>komenda;
    switch(komenda)
{
case 1:
    {

    fstream plik;
    plik.open("H0wT0BeG00dAtCSGO.csv",ios::in);

    if(plik.good()==false)
    {
        cout<<"Nie masz jeszcze konta!";
        exit(0);

    }

    int nr_linii=1;
    string linia;
    while(getline(plik, linia))
    {
        switch(nr_linii)
        {
            case 1: NazwaUz = linia; break;
            case 2: Haslo = linia; break;
        }
        nr_linii++;
    }

    cout<<"Wpisz nazwe uzytkownika"<<endl<<endl;
    cin>>NazwaUz;
    cout<<"Wpisz hasło"<<endl<<endl;
    cin>>Haslo;
    plik.open("H0wT0BeG00dAtCSGO.csv", ios::in);
    cout<<"Jak sie masz"<<endl;
    break;

    }
case 2:

    cout<<"Wpisz nazwe nowego uzytkownika"<<endl;
    cin>>NazwaUz;
    cout<<"Wpisz hasło"<<endl;
    cin>>Haslo;

    fstream plik;
    plik.open("H0wT0BeG00dAtCSGO.csv", ios::out | ios::app);
    plik<<NazwaUz<<endl;
    plik<<Haslo<<endl;

    plik.close();
    break;

}

    return 0;
}
komentarz 5 marca 2017 przez koczurekk Gaduła (3,420 p.)
Wstaw kod jako kod a nie luźny tekst.
komentarz 5 marca 2017 przez PolskiSiersciuch Nowicjusz (170 p.)
#include <iostream>
#include <fstream>
#include <cstdlib>


using namespace std;

int main()
{
    string NazwaUz;
    string Haslo;
    int numer;
    int jeden, dwa;
    int komenda;

    cout << "Witaj! Jezeli chcesz zarejestrowac sie w systemie wpisz ,,zarejestruj,,"<<endl<<"Jezeli jestes juz zalogowany w systemie wpisz login i haslo" <<endl<<endl;

    cout<<"1.Zaloguj"<<endl<<"2.Zarejestruj"<<endl;
    cin>>komenda;
    switch(komenda)
{
case 1:
    {


    fstream plik;
    plik.open("H0wT0BeG00dAtCSGO.csv",ios::in);

    if(plik.good()==false)
    {
        cout<<"Nie masz jeszcze konta!";
        exit(0);

    }

    int nr_linii=1;
    string linia;
    while(getline(plik, linia))
    {
        switch(nr_linii)
        {
            case 1: NazwaUz = linia; break;
            case 2: Haslo = linia; break;
        }
        nr_linii++;
    }




    cout<<"Wpisz nazwe uzytkownika"<<endl<<endl;
    cin>>NazwaUz;
    cout<<"Wpisz hasło"<<endl<<endl;
    cin>>Haslo;
    plik.open("H0wT0BeG00dAtCSGO.csv", ios::in);
    cout<<"Jak sie masz"<<endl;
    break;

    }
case 2:

    cout<<"Wpisz nazwe nowego uzytkownika"<<endl;
    cin>>NazwaUz;
    cout<<"Wpisz hasło"<<endl;
    cin>>Haslo;

    fstream plik;
    plik.open("H0wT0BeG00dAtCSGO.csv", ios::out | ios::app);
    plik<<NazwaUz<<endl;
    plik<<Haslo<<endl;

    plik.close();
    break;

}

    return 0;
}

 

1
komentarz 5 marca 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
komentarz 5 marca 2017 przez Aisekai Nałogowiec (42,190 p.)
  while(getline(plik, linia))
    {
        switch(nr_linii)
        {
            case 1: NazwaUz = linia; break;
            case 2: Haslo = linia; break;
        }
        nr_linii++;
    }

Zakładasz ze tylko jeden użytkownik będzie?

komentarz 5 marca 2017 przez PolskiSiersciuch Nowicjusz (170 p.)
Zakładam, że będzie ich 5 lub 10, lecz już mi ludzie odpowiedzieli i to powinno mi wystarczyć.

1 odpowiedź

+1 głos
odpowiedź 5 marca 2017 przez JAKUBW Nałogowiec (33,470 p.)

Po co ci ta pętla?!

int nr_linii=1;
    string linia;
    while(getline(plik, linia))
    {
        switch(nr_linii)
        {
            case 1: NazwaUz = linia; break;
            case 2: Haslo = linia; break;
        }
        nr_linii++;
    }

Nie możesz tego po prostu tak?


    if(!getline(plik,NazwaUz ) || !getline(plik,Haslo))
    {
        //Wystąpił błąd
    }

Następnie musisz sprawdzić czy hasła są zgodne. W ogóle tego nie widzę u ciebie w kodzie.

Podobne pytania

0 głosów
1 odpowiedź 977 wizyt
0 głosów
1 odpowiedź 413 wizyt
pytanie zadane 20 sierpnia 2019 w C i C++ przez magicznyukf Początkujący (260 p.)
0 głosów
0 odpowiedzi 153 wizyt

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,004 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!

...