• 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
123 wizyt
pytanie zadane 13 sierpnia 2016 w Nasze projekty przez Drzewysław Początkujący (410 p.)

Cześć!

Mam problem z kodem c++ (jest błąd w 31 linijce), ale nie widzę jaki...

#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <fstream>


using namespace std;

string login, pass;
string reg_log, reg_pass, potwierdz;
int log_or_reg;
string acc_name;
string true_pass;
string acc_folder="c:\\accounts_data\\passwords\\";

void create_all() //funkcja, ktora tworzy wszystkie potrzebne foldery
{
	CreateDirectoryA("c:\\accounts_data\\passwords", NULL);
}

void logging() //logowanie do konta
{
	cout<<"Login: ";
	cin>>login;
	cout<<endl;
	cout<<"Password: ";
	cin>>pass;
	cout<<endl;
	acc_name = acc_folder + login + ".txt";
	fstream plik;
	plik.open(acc_name.c_str, ios::in);
	getline(plik, true_pass);
	if (plik.good()==true && pass==true_pass) //jesli wszystkie wprowadzone dane sa prawidlowe, loguje do konta
	{
		cout<<"Success!";
	}
	else if (plik.good()==false)//przypadek, kiedy login nie znajduje sie w bazie
	{
		cout<<"Login incorrect!";
	}
	else if (plik.good()==true && pass!=true_pass) //nieprawidlowe haslo
	{
		cout<<"Password incorrect";
	}
	else //nic sie nie zgadza
	{
		cout<<"Unknown account, try again!";
	}
}

void create_acc() //rejestracja
{
	cout<<"NAME: ";
	cin>>reg_log<<endl;
	string file_name = acc_folder + reg_log + ".txt"; //tworzy zmienna, ktora posluzy jako nazwa pliku
	cout<<"PASSWORD: ";
	cin>>reg_pass<<endl;
	cout<<"REPEAT PASSWORD: ";
	cin>>potwierdz;
	if reg_pass != potwierdz //sprawdza czy hasla sa takie same
	{
		cout<<"Wrote passwords are not the same!";
	}
	else //jesli sa takie same tworzy plik o nazwie login+ ".txt" a w srodku umieszcza dane
	{
		fstream user_info;
		user_info.open(file_name.c_str, ios::out);
		user_info<<reg_pass<<endl;
		user_info.close();
		cout<<"Your account has successfully created!";
	}
}
int main()
{
	create_all();
	cout<<"Hello!"<<endl;
	Sleep(1000);
	system("cls");
	while(log_or_reg != 1) //petla dopoki uzytkownik nie wybierze opcji logowania
	{
		cout<<"What do You want to do:"<<endl;
		cout<<"Login: Type '1'"<<endl;
		cout<<"Create an account: Type '2'"<<endl;
		cout<<"YOU: ";
		cin>>log_or_reg;
		if log_or_reg == 1
		{
			logging();
		}
		else if log_or_reg == 2
		{
			create_acc();
		}
		else
		{
			cout<<"You choosed incorrect function!";
		}
		system("cls");
		//tak dla przejzystosci programu,
		//aby po zakonczeniu logowania/rejestracji byl pusty ekran
	}
	return 0;
}

 

2 odpowiedzi

+2 głosów
odpowiedź 13 sierpnia 2016 przez obl Maniak (51,280 p.)
plik.open(acc_name.c_str(), ios::in);

c_str jest metodą obiektu klasy string żeś zapomniał o nawiasach.

komentarz 13 sierpnia 2016 przez Drzewysław Początkujący (410 p.)
Dzięki!

Całkowicie zapomniałem o tych nawiasach :D poprawiłem wszystkie błędy i już całość działa!
0 głosów
odpowiedź 13 sierpnia 2016 przez WaxerStudio Bywalec (2,070 p.)
Wyślij log z kompilatora zazwyczaj to jest najbardziej pomocne i nie trzeba wtedy analizować kodu ;)

Podobne pytania

0 głosów
1 odpowiedź 241 wizyt
0 głosów
2 odpowiedzi 171 wizyt
pytanie zadane 14 listopada 2015 w C i C++ przez maciek061 Gaduła (4,490 p.)
0 głosów
4 odpowiedzi 294 wizyt
pytanie zadane 18 lipca 2015 w C i C++ przez Rappa2 Obywatel (1,540 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,937 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!

...