0
430850	First Name Last Name 8 GHZ 1950 YFD 2400 LUO 1950 GXV 350 KKH 1550 IDU 1000 EWT 350 UJU 1100 
47760	First Name Last Name 5 ZCW 1850 KQY 1050 EWM 300 MFG 2050 OLW 1200

Here is an example from the input file. The first number is an identification number. After the first and last names an integer is given which represents the number of investments the given person holds. For each investment there is a 3 character code followed by the number of shares held.

The problem I am having is figuring out how to read data in without knowing how many investments a given entry has. When I try to run the program as I have it now it stops after the first entry, which isn't even displaying correctly.

845528	 First Name Last Name	  00	 	  0

Can I get some input as to what I'm doing wrong? Some help getting me on the right track would be great. Thanks.

while (Infile >> students[StudentNum].iD)
    {
        Infile >> students[StudentNum].First >> students[StudentNum].Last;

        students[StudentNum].Sort = students[StudentNum].Last + ' ' + students[StudentNum].First;

        
        Infile >> students[StudentNum].Investments;
        for (i = 0; i < Investments + 1; i++)
        {
            Infile >> students[StudentNum].Shares >> students[StudentNum].Stock;
            StudentNum++;
        }
        StudentNum++; 

        if (StudentNum == SizeFromFile)
        {
            SizeFromFile = (SizeFromFile *2) + 1;
            TmpPtr = new Student[SizeFromFile];
            for (i = 0; i < StudentNum; i++)
                TmpPtr[i] = students[i];
            delete[] students;
            students = TmpPtr;
            TmpPtr = NULL;
        }
    }
   
    
    for (i = 0; i < StudentNum; i++)
    {
        Outfile << students[i].iD << '\t' << students[i].First << ' '
             << students[i].Last << '\t' << students[i].Stock << ' ' << students[i].Shares;
        
    }

Edited by thisisanfield.1: n/a

2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by Ancient Dragon
0

struct (or class) students needs an array or vector to hold the individual shares and their quantities.

struct shares
{
    string name;
    int qty;
};

struct students
{
    vector<shares> sh;
    // remaining fields
};
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.