【发布时间】:2013-12-18 04:28:53
【问题描述】:
好的,所以我的指针逻辑有点缺陷,但我正在努力。我的问题出在下面的 main.cpp 文件中,在 getStructData() 函数内部。我在 cmets 中有列出的问题,我认为似乎是正确的,但知道它不是。我现在将问题提出来,从 cmets 出来。
我有一个函数 getMyStructData(),我目前可以根据索引号打印出特定结构的元素。相反,我想将该结构在给定索引号 (int structureArrayIndex) 处的元素从私有结构复制到指针参数的结构中。
在 myStructure.h 中
struct myStructure
{
int myInteger;
double myDoublesArray[5];
char myCharArray[80];
};
在 myClass.h 中
#include "myStructure.h"
class myClass
{
private:
myStructure myStruct[5]
private:
Prog1Class();
~Prog1Class();
void setMyStructData();
void getMyStructData(int structureArrayIndex, struct myStructure *info);
};
main.cpp 中
#include<iostream>
#include <string>
#include "myClass.h"
#include "myStructure.h"
using namespace std;
void myClass::setMyStructData()
{
for(int i = 0; i < 5 ; i++)
{
cout << "Please enter an integer: " << endl;
cin >> myStruct[i].myInteger;
for(int j = 0; j< 5; j++)
{
cout << "Please enter a double: ";
cin >> myStruct[i].myDoublesArray[j];
}
cout << endl << "Please enter a string: ";
cin.ignore(256, '\n');
cin.getline(myStruct[i].myCharArray, 80, '\n');
}
}
void Prog1Class::getStructData(int structureArrayIndex, struct myStructure *info)
{
//****Below I have what's working, but Instead of just printing out the elements, what I want to do is copy the elements of that struct at the given index number (int structureArrayIndex) from that private structure into the structure of the pointer argument.
//I'm guessing something like this:
// info = &myStructure[structureArrayIndex];
//I know that's wrong, but that's where I'm stuck.
//****Here is how I would print out all of the data using the int structureArrayIndex
cout << myStruct[structureArrayIndex].myInteger << endl;
for (int k = 0; k < 5; k++)
{
cout << myStruct[structureArrayIndex].myDoublesArray[k] << endl;
}
cout << myStruct[structureArrayIndex].myCharArray << endl;
}
int main(void)
{
myClass c;
c.setMyStructData();
c.getStructData(1);
cin.get();
}
【问题讨论】: