Tworzenie obiektów zapisanych w pliku.

0

Chciałbym aby podczas wczytywania danych z pliku (plik w postaci)

admin|tajne
user|haslo 

tworzył obiekty klasy user

Mam taki kod

#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>//convert string to int
#include <conio.h>
using namespace std;
class users{
public:
	string name;
	string pass;
	users(string name,string pass):name(name),pass(pass){}
};
class Cmain{
public:
	Cmain(){
		cout<<"Constructor";
	}
	void read_users(){
		string data;
		string name;
		string pass;
		int found;
		int i=0;
		fstream file;
		file.open( "users.dat", ios::in);
		if(file.good())
		{
			while( !file.eof())
			{
				getline( file, data );
				found = data.find_first_of("|");
				name=data.substr(0,found);
				pass=data.substr(found+1);
				users[i++](name,pass);
			}
		} else cout << "Data not found!\n";
		file.close();
	}
};
int main(){
  Cmain mainclass;
  mainclass.read_users();  
    

    return 0;
}
 

Oczywiście zapis usersi++; jest błedny.
Jak napisać kod żeby tworzył obiekt user1 i user2?

0

Najpierw zastanów się, gdzie chcesz tych userów przechowywać.

0

Nie rozumiem pytania.
Udało mi się to zrobić na vektorze, jednak czy jest inni sposób?
Klasa Cmain powinna utworzyć kilka obiektów klasy users

0

W tym kodzie nie stworzyłeś żadnego obiektu, który przechowywałby userów. Istnieje wiele sposobów, vector jest ok.

0

Jeśli bym napisał zamiast usersi++; poprawną wersję np usernr to utowżył mi obiekt usernr(name,pass)
czy da się jakiś połączyć zmienną z moją nazwą tak aby zadziałało coś usernr-mojazmienna-(name,pass)? wtedy nie musiał bym towrzyć wektora.?

0

Ale żebyś mógł przechować gdzieś te obiekty, to musisz mieć jakąś tablicę/kolekcję. Jak chcesz to zrobić bez?

1 użytkowników online, w tym zalogowanych: 0, gości: 1