如何在结构数组中存储值

时间:2011-04-01 15:17:50

标签: c++

我在将程序中的某些已处理值存储到结构数组中时遇到问题。 这些值包含3个长整数,我试图将这些值存储为结构中的数组。

这是我整个代码的简化相关版本。请帮我把它搞定。

#include<iostream>
#define MAX 20

using namespace std;

struct DATA
{
    int id, number;
    float height;
} stuarray [MAX];

int main ()
{
 long int1 =0;      //contains integer values obtained from a file                                       
 long int2 =0;      //contains integer values obtained from a file
 long int3 =0 ;     //contains integer values obtained from a file

 cout<< stuarray[MAX].id << endl;
 cout<< stuarray[MAX].number << endl;
 cout<< stuarray[MAX].height << endl;
 return 0;
}
好的,我会解释我的节目。我正在从文件中读取值作为字符串。在此之后我应该将它们分成3个部分并将它们存储在一个数组中。这个数组应该引用结构中的成员变量。 我已设法读取值,拆分它们,并将它们中的所有3个转换为长整数。 现在我必须将这三个值存储在结构数组中。 谢谢大家的帮助。

2 个答案:

答案 0 :(得分:8)

将值存储在stuarray的特定元素中:

stuarray[i].id = something;
stuarray[i].number = somethingElse;
stuarray[i].height = aFloatThisTime;

请注意,对于MAX条目数组,合法索引位于。{ 范围[0,MAX]。

答案 1 :(得分:0)

将3个长int成员添加到结构中,或添加长度为3的数组:

struct DATA
{
    int id, number;
    float height;
    long int value1, value2, value3;
} stuarray[MAX]

struct DATA
{
    int id, number;
    float height;
    long int values[3];
} stuarray[MAX]

如果要使用后一个示例,则在数组中存储值类似于:

stuarray[i].values[0] = int1;
stuarray[i].values[1] = int1;
stuarray[i].values[2] = int2;