Чтение определенных частей данных из строки с помощью ifstream

Я написал программу, которая в основном читает 2 строки из текстового файла, сохраненного в основном файле проекта. Примечательно, что моя ОС - Windows. Мне нужно читать только определенные части текста из первой и второй строки. Например, у меня есть один текстовый файл с двумя строками: Пользователь: Администратор и пароль: Стефан. В моей программе я спрашиваю у пользователя имя пользователя и пароль и проверяю, совпадает ли он с именем в текстовом файле, однако строки содержат некоторые ненужные строки: «Пользователь:» и «Пароль:». Есть ли способ все прочитать, но исключить ненужные буквы? Это код, который я использую для чтения из файла:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ifstream myfile("Hello.txt");
    string str, str2;
    getline (myfile, str);
    getline(myfile, str2);
    return 0;
} 

Где str - первая строка текстового файла, а str2 - вторая.


person Bugster    schedule 05.01.2012    source источник
comment
Я думаю, вам поможет следующий ответ: stackoverflow.com/ questions / 1101599 /   -  person Dean    schedule 05.01.2012
comment
Я только что проверил, но мой компилятор не поддерживается. Есть способ попроще? Если нет, я просто поменяю свой компилятор   -  person Bugster    schedule 05.01.2012


Ответы (1)


Этот код загружает пользователя и пароль из файла с именем user.txt.

Содержание файла:

user john_doe
password disneyland

Он читает строку с помощью getline( myfile, line ), разделяет строку с помощью istringstream iss(line) и сохраняет пользователя и пароль в отдельных строках.

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

int main()
{

    string  s_userName;
    string  s_password ;
    string line,temp;

    ifstream myfile("c:\\user.txt");

    // read line from file
    getline( myfile, line );


    // split string and store user in  s_username
    istringstream iss(line);
    iss >> temp;
    iss >> s_userName;

    // read line from file
    getline( myfile, line );

    // split string and store password in  s_password
    istringstream iss2(line);
    iss2 >> temp;
    iss2 >> s_password;

    //display
    cout << "User     : " << s_userName << " \n"; 
    cout << "Password : " << s_password << " \n";
    cout << " \n";

    myfile.close();
    return 0;
} 
person Software_Designer    schedule 05.01.2012