2012-01-05 11 views
0

基本的にメインプロジェクトファイルに保存されたテキストファイルから2行を読み込むプログラムを作成しました。私のOSはWindowsであることは注目に値する。私は最初と2番目の行からテキストの特定の部分だけを読む必要があります。たとえば、私は2行のテキストファイルを持っています:ユーザー:管理者とパスワード:stefan。私のプログラムでは、ユーザにユーザ名とパスワードを要求し、テキストファイル内の文字列と一致するかどうかを確認しますが、行には不要な文字列 "User:"と "Password:"が含まれています。不要な文字を除外してすべてを読む方法はありますか? strはテキストファイルから最初の行をあるとstr2が第二であるifstreamを使用して文字列からデータの特定の部分を読み取る

#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; 
} 

:これは私が、ファイルからの読み取りに使用しているコードです。

+0

私は、次の答えはあなたを助けるだろうと思い:http://stackoverflow.com/questions/1101599/good-c-string-manipulation-library – dean

+0

は、私はちょうどそれを確認したが、私のコンパイラがサポートされていません。もっと簡単な方法はありますか?そうでない場合は、コンパイラを変更するだけです。 – Bugster

答えて

2

このコードは、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; 
} 
+0

Brilliantありがとう。 – Bugster

+0

ようこそ。 –