私は c++ を学び始めたばかりで、このポインター/配列の章全体で、これらの概念を把握するために何かをコーディングしようとしています。コードで実行したいことは次のとおりです。1) 多数の学生を要求する、2) 各学生の名前を要求する、3) 構造体でこの学生に ID と名前を割り当てる、4) 学生 ID と名前を出力する検証用。
問題は次のとおりです。たとえば、3 人の生徒を入力し、次の名前を入力するとします。
JOHN
GEORGE
NICK
プログラムが学生 ID/名前として出力するものは次のようになります。
0 JOHN
1 EORGE
2 ICK
すべての名前の最初の文字をカットするようですが、最初の文字は削除されます。
#include <iostream>
using namespace std;
struct STUDENT
{
char chName[256];
int nID;
};
int main(){
//array tests
int i=0;
int nLoops=0; //number entered by user
STUDENT *pnStudents; //pointer to our student array
cout << "Enter number of students: ";
cin >> nLoops;
pnStudents = new STUDENT[nLoops];
for (i=0 ; i < nLoops ; i++)
{
cout << endl << "Full Name of Student " << i <<": ";
cin.ignore();
cin.getline(pnStudents[i].chName,255);
pnStudents[i].nID=i;
}
for (i=0 ; i < nLoops ; i++)
{
cout << pnStudents[i].nID << " " << *pnStudents[i].chName << endl;
}
system("pause");
return 0;
}