【发布时间】:2012-11-01 04:46:25
【问题描述】:
我刚刚开始学习 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;
}
【问题讨论】:
-
我强烈建议尽早学习使用调试器。