私はC++が初めてで、ファイルストリームの読み取り全体を理解するのに少し問題があります..どんな助けもいただければ幸いです...ここで私は問題を抱えています
私はこのような構造の配列を持っています; (いいえ、明らかにこれらのものを格納するために文字列を使用することは許可されていません。また、ベクトルや、私がカバーしていないその他のより高度なものを使用することも許可されていません)...
struct Staff
{
char title[TITLESIZE];
char firstName[NAMESIZE];
char familyName[NAMESIZE];
char position[POSSIZE];
char room[TITLESIZE];
char email[POSSIZE];
};
次に、これらの構造の配列があります。
Staff record[MAXNOSTAFF];
データは、タブで区切られたテキスト ファイルに含まれています。ただし、一部のフィールドには空白が含まれる場合があります。以下のようなデータ:
Dr Sherine ANTOUN Lecturer 4327 3.204 sherine_antoun@gmail.com
これが私のコードに書いたものです...
//function prototypes
bool getRecord (ifstream& infile, Staff dataAr[], bool& fileFound);
int main()
{
Staff record[MAXNOSTAFF];
bool fileFound;
ifstream infile;
getRecord(infile, record, fileFound); //function call
if (fileFound==true)
{
cerr <<"Exiting Program"<<endl;
exit(1);
}
return 0;
}
//function definitions
bool getRecord (ifstream& infile, Staff dataAr[], bool& fileFound)
{
infile.open("phonebook.txt");
if (infile)
{
fileFound = true;
cout << "File " <<PHONEBOOK<< " opened successfully.\n\n";
}
else if (!infile)
{
fileFound = false;
cerr << "Error! File could not be opened. \n";
}
while (infile.good())
{
for (int lineIndex=0; lineIndex<MAXNOSTAFF; lineIndex++)
for (int titleIndex=0; titleIndex<TITLESIZE; titleIndex++)
{
cin.getline(dataAr[lineIndex].title[titleIndex], MAXNOSTAFF, '/t');
}
}
//check it works properly
for (int k=0;k<10; k++)
{
for (int m=0; m<11; m++)
{
cout << k <<". Title is : "<<dataAr[k].title[m]<<endl;
}
}
infile.close();
return fileFound;
}
どんな助けでも大歓迎です..ありがとう