Kezdőoldal » Számítástechnika » Programozás » C++ segítség kérés, többi lent!?

C++ segítség kérés, többi lent!?

Figyelt kérdés

Szeretnék egy .txt fájlból egy sort beolvasni,majd ellenőrizni,hogy az egyezik-e a console-ba beírt szöveggel.

Előre is köszi!



2015. szept. 20. 13:33
1 2
 1/14 anonim ***** válasza:
Hol akadtál el?
2015. szept. 20. 13:44
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:

Igazából egy jelszó ellenőrzőt akartam írni..

.txt file-ba benne van a jelszó,onnan kiolvasni és ellenőrizni,hogy amit beírtam a console-ba az egyezik-e..


A kiolvasásnál akadtam el,hogy pont azt a sort hogy tudnám kiolvasni belőle,az ellenőrzés az menne.

2015. szept. 20. 13:51
 3/14 anonim ***** válasza:

Tehát több sor van a fájlban és egy adott számú sor kell neked?

Hogyan olvasol fájlból?

2015. szept. 20. 16:28
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:

Az csak attól függ, hogy pont az a sor hol van a fájlban.

Egyébként nem túl biztonságos megoldás.

2015. szept. 20. 16:39
Hasznos számodra ez a válasz?
 5/14 A kérdező kommentje:

Azzal nincs gond,hogy az összes fájlba lévő szöveget kiírassam:


while (!file.eof())

{

string adat;

getline(file, adat);

system("COLOR d");

cout << endl;

cout << adat << endl;

}


De nekem pontosan csak az 1. sor kellene,és azt ellenőriztetni egy változóval,hogy egyeznek-e.

2015. szept. 20. 16:40
 6/14 anonim ***** válasza:

Na ne szivass...

Ha csak az első sor kell, akkor csak azt olvasd be, a maradék 4823-at meg ne.

2015. szept. 20. 17:10
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:

A beolvasásod egyébként pedig rossz, mert az eof csak olvasási kísérlet után állítódik be, így egyszer mindenképp lefut a ciklusod.


int main(int argc, char *argv[])

{

std::ifstream ist{"test.txt"};

if (!ist)

{

std::cerr << "Hiba\n";

return 1;

}


std::string readedPassword;

std::getline(ist, readedPassword);


std::cout << "Add meg a jelszot: ";

std::string inputPassword;

std::getline(std::cin, inputPassword);


if(inputPassword == readedPassword) { std::cout << "Jo jelszo!\n"; }

else { std::cout << "Rossz jelszo!\n"; }


std::getchar();

return 0;

}

2015. szept. 20. 17:19
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:

A tipp lemaradt az egész fájl beolvasására, majd kiíratására:


for (std::string s; std::getline(ist, s);) { std::cout << s << '\n'; }

2015. szept. 20. 17:21
Hasznos számodra ez a válasz?
 9/14 A kérdező kommentje:

ifstream file("text.txt");

cout << "Add meg a jelszavad: " << endl;

string jelszo;

cin >> jelszo;


string sor;

getline(file, sor);

if (jelszo == sor)

{

//JÓ a kód..

}

else

{

//ROSSZ

}


Ennek működnie kéne?Vagy van benne hiba?

2015. szept. 20. 17:37
 10/14 anonim ***** válasza:

Ajánlatos leellenőrizni sikerült megnyitni vagy nem a fájlt.

if(!file) // ha nem sikerült

{

// hiba kezelése, ha nem sikerült megnyitni

}


cin >> // ez üres karakterig olvas be a konzolból, tehát ha beírod, hogy: "alma korte" akkor csak az alma lesz a stringben. Ha az neked nem megfelelő használj itt is getline-t, de amúgy jó a kód.

2015. szept. 20. 18:02
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!