2017-07-15 4 views
-2

配列やベクトルのtxtファイルから文字列や倍音を格納する方法を解明しようとしていますが、頭の中に入れません。私はかなりの研究をして、それを私に説明した何かを見つけませんでした。基本的に私の仕事は、ユーザー名のパスワードとこの形式の金額やポイントのような数字を含むファイルを読むことです。 ENISのTAHする\ n MyPassw0rd1 $$ 4 \ N 436.18 \ N配列とベクトルにファイルを格納する

Enis1 TAH \ N MYPASSWORD \ N 76.2 \ N

\はtxtファイルではないが、名前パスと番号であります異なる行のテキスト

....私は私は私はベクトルを使用することができますサイズを知らないもののために配列を使用することができますサイズを知っているファイルの場合

のない同じライン。その後、ユーザにログインさせ、銀行口座にアクセスしたりポイントを見たりできるようにするために、ユーザ名とパスワードを入力するようユーザに要求します。
これは私のコードです:

#include <iostream> 
#include <fstream> 
#include <vector> 
#include <string> 


void mainMenu(); 

using namespace std; 




int main(){ 

ifstream storeFromFile("student_info.txt"); 

vector<string> Usernames; 
string getUsernames; 
while (!storeFromFile.eof()) { 
    cin.ignore(); 
    getline(storeFromFile, getUsernames); 




    } 
for (int i=0; i<=Usernames.size(); i++) { 

Usernames.push_back(getUsernames); 
cout << Usernames[0]; 
} 
mainMenu(); 


return 0; 
} 



void mainMenu(){ 
cout <<"\n[DA] to view all grades" <<endl; 
cout <<"[T] to view top x students" <<endl; 
cout <<"[P] to view one grade in particular" <<endl; 
cout <<"[E] to exit\n" <<endl; 
} 
+0

を得ました。既に多くの類似の質問があります。 –

+0

私はファイルから読み込む方法を知っていますが、配列やベクトルにそれらを格納する方法を理解していないので、ユーザー入力との互換性があります。 – Blooddy

+0

配列とベクトルには、要素を格納するための同等の構文があります: 'a [index] = value;'ベクトルのためのあなたの好きなリファレンスを調べるか、インターネットで "C++ vector example"を検索してください。 –

答えて

0

あなたは本当にclassまたはstructを使用して、各レコードをモデルにしたいです。

レコードの各行(テキスト行)ごとに1つのメンバーを持つクラスを定義します。

ストリームの各メンバーを入力するクラスの抽出演算子をオーバーロードします(operator >>)。

これらのクラスのコンテナをデータベースとして宣言します(例: std::vector<Record> database;

にご入力ループを変更

Record r; 
while (data_file >> r) 
{ 
    database.push_back(r); 
} 

CSVファイルを読み込むためのエッセンス(ファイルがコンマ以外の区切り文字を使用していても)だこと。

+0

には、構造体やクラスを使用せずに行う方法があります。なぜなら、それらを使用することは許されていないからです。あなたが私にそれを説明することができれば、私の最高をしようとしている私は本当にそれを感謝しますが、私はちょうどそれを理解していないので、どうもありがとう。 – Blooddy

+0

はい、「平行な」ベクトルまたは配列で行うことができます。あなたの好きなリファレンスでそれらを研究してください。 –

+0

インターネットで "stackoverflow C++ read file array"を検索します。 –

0

iが "StackOverflowのC++ファイルが分離読み取り" をインターネットで検索してください答え

const int sizeLimit = 50; 
string firstName[sizeLimit], lastName[sizeLimit], passWord[sizeLimit]; 
double accountBalance[sizeLimit]; 
int count = 0; 

ifstream readFile("Accounts.txt"); 

while (!readFile.eof()) 
{ 
    readFile >> firstName[count]; 
    readFile >> lastName[count]; 
    readFile >> passWord[count]; 
    readFile >> accountBalance[count]; 
    count++; 
} 
関連する問題