2013-05-08 1 views
1

Так что я справился, как открыть файл и прочитать в разных входах в этом файле. Вопрос в том, как я могу захватить эти отдельные входы (несколько итераций имени пользователя и пароля) и заполнить вектор типа User, который содержит 2 вещи: имя пользователя и пароль? Класс для этого проводится в другом файле с именем User.h, содержащегоКак заполнить вектор типа «Пользователь», который имеет 2 компонента к нему «имя пользователя» и «пароль»

class User 
{ 
private: 
    string username; 
    string password; 
public: 
// etc etc etc... 
}; 

Использование класса User:

void BBoard::setup(const string & input_file) 
{ 
    //ifstream filename; 
    ////find a way to turn a string into a char pointer 
    //filename.open(input_file); 

    string username; 
    string password; 
    fstream f; 

    f.open("test"); 
    while(f>>username) 
    { 
     f>>password; 
     cout << username << " " << password << endl; 
     //make User object and push to user_list 
     user_list.at(i).username 
     if(f.eof()) break; 
    } 
    f.close(); 
} 

тест содержимое файла:

user1 password1 
user2 password2 
user3 password3 

ответ

3

Если предположить, что список содержит значения (и не указатели):

vector<User> user_list; 
user_list.push_back(User(username, password)); 

Если вы знаете, сколько элементов есть, а User имеет конструктор по умолчанию, вы можете позвонить user_list.reserve(n) за эффективность.

1
//make User object and push to user_list 
User user; 
user.username = username; 
user.password = password; 
user_list.push_back(user);