我刚刚开始学习 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;
}