DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Reading/writing .txt files into an array (http://www.daniweb.com/forums/thread99321.html)

cl3m0ns Dec 2nd, 2007 8:31 pm
Reading/writing .txt files into an array
 
I am writing a program and I have a .txt file that has a some information about people. I would like to write that information into an array and then display that information about the person.

The problem is that I don't know how many names will be in the .txt file, or how to write that information to the file.

Here is what I have so far.

#include <iostream>
#include "StaffEmployee.h"
#include "HourlyEmployee.h"
#include <iomanip>
#include <fstream>

using namespace std;

void upload()
{
        ifstream  infile;
        infile.open ("hourly.txt");
        while (!infile.eof())
        {

        }

}

int main()
{
        const int size = 20;
        HourlyEmployee a[size];
        HourlyEmployee fellow;
        HourlyEmployee person(10, 55, "Electronics", "Alan", "Good", "E1234") ;

        fellow.display();
        person.display();


       
               
        return 0;
}

and here is my hourlyEmployee class.

#include "Employee.h"
#include <iostream>
#include <string>

using namespace std;

#ifndef HOURLYEMPLOYEE_H
#define HOURLYEMPLOYEE_H

class HourlyEmployee:public Employee
{
        private:
                double hourlyWage;
                double hoursWorked;
                string deptName;
       
        public:
                HourlyEmployee()
                {
                        hourlyWage = 0;
                        hoursWorked = 0;
                        deptName = "unknown";
                }

                HourlyEmployee(double hWage, double hWorked, string dName, string first, string last, string ID) : Employee(first, last, ID)
                {
                        hourlyWage = hWage;
                        hoursWorked = hWorked;
                        deptName = dName;
                }
                void set_hourlyWage(double hWage)
                {
                        hourlyWage = hWage;
                }
                void set_hoursWorked(double hWorked)
                {
                        hoursWorked = hWorked;
                }
                void set_deptName(string dName)
                {
                        deptName = dName;
                }
                double get_hourlyWage()
                {
                        return hourlyWage;
                }
                double get_hoursWorked()
                {
                        return hoursWorked;
                }
                string get_deptName()
                {
                          return deptName;
                }
                void compute_salary()
                {
                        double salary = 0;
                        salary = hoursWorked * hourlyWage;
                        cout << "2 Week Salary: $" << salary;
                        cout << endl;
                }
                void display()
                {
                        Employee::display();
                        double salary = 0;
                        salary = hoursWorked * hourlyWage;
                        cout << "2 Week Salary:  $" << salary;
                        cout << endl;
                        cout << endl;
                }
};

#endif

I don't really know how to put the .txt information into the array so if anyone could give me some idea's or any help at all that would be great.

Thanks

Ancient Dragon Dec 2nd, 2007 8:51 pm
Re: Reading/writing .txt files into an array
 
That while statement on line 13 is incorrect because eof() doesn't work like that. Instead, code it something like this
string line;
while(getline(infile, line) )
{
    // now split this string into individual parts for the structure
}

cl3m0ns Dec 2nd, 2007 8:57 pm
Re: Reading/writing .txt files into an array
 
Quote:

Originally Posted by Ancient Dragon (Post 482790)
That while statement on line 13 is incorrect because eof() doesn't work like that. Instead, code it something like this
string line;
while(getline(infile, line) )
{
    // now split this string into individual parts for the structure
}

Thanks for that but do you know how to write the information into an array? Or for that matter how to split this string into individual parts for the structure?

cl3m0ns Dec 2nd, 2007 8:57 pm
Re: Reading/writing .txt files into an array
 
Also thanks for changing the code

WaltP Dec 2nd, 2007 9:11 pm
Re: Reading/writing .txt files into an array
 
Quote:

Originally Posted by cl3m0ns (Post 482793)
Thanks for that but do you know how to write the information into an array? Or for that matter how to split this string into individual parts for the structure?

Yes. But it depends on lots of things -- format of the file, what the array looks like, what delimiters are in the string. Details help make decisions.

cl3m0ns Dec 2nd, 2007 9:18 pm
Re: Reading/writing .txt files into an array
 
Quote:

Originally Posted by WaltP (Post 482799)
Yes. But it depends on lots of things -- format of the file, what the array looks like, what delimiters are in the string. Details help make decisions.


the .txt file is...

Joe Cruise E1111
Bill Bones E2222
Sue Smith E3333
Tom Turpin E4444
Ron Stewart E5555
Mindy Sweet E7777

and the class file employee has string firstName, string lastName, string employeeID.

i want to use an array in my int main to write those names and ID's to the class....


is that possible and if so how would I even start to do it?

Ancient Dragon Dec 2nd, 2007 10:29 pm
Re: Reading/writing .txt files into an array
 
The input line can be split using stringstream class
#include <sstream>
...
...
stringstream stream(line);
stream >> firstName >> lastName >> employeeID;

WaltP Dec 2nd, 2007 10:46 pm
Re: Reading/writing .txt files into an array
 
Yes, it's possible. Make an array of the class employee. As you read the file, load the class. You can then access employee[x].FirstName, etc.


All times are GMT -4. The time now is 2:18 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC