We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,577 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

C++ Don't know how to call functions

I do not know how to write a function for this. I have written just the base line of the code, but I do not know how to finish it. Here is the description.

A void Function tagReader inputs the data collected by the cylinders; it has two parameters: the input file and an int count. The function inputs names, serial numbers, and location coordinates from the input file. The input file will have a descriptive name, an integer serial number and two double values representing map coordinates separated by blanks on each line. For each cylinder, echo print to the screen, the name, serial number and both coordinate values along with the value of the smaller coordinate value. Use an EOF controlled while loop. A count of the number of entries in the file will be returned to the caller via the reference parameter count.

tags1.txt
bsharkdata 1782 12.00 82.90
ftmyersfeb 7150 11.00 32.89
sandiego99 8800 15.20 52.76
turtles666 2180 11.00 14.09
turtles765 4223 11.90 17.10
FredsFish 4145 11.60 42.22
GreatBaReef 8673 10.00 11.40
VaBch77June 1111 13.50 44.00

tags2.txt
turtles686 2110 14.88 65.19
turtles995 1123 61.60 77.17
UKFishData 4145 99.04 22.98
Gr8BaReef2 8673 19.71 76.12
VaBch78876 1111 69.11 51.10
shark9987 1782 83.40 89.11
florida331 3130 14.01 52.89
florida876 6600 15.20 52.76
flKeys331 4410 64.66 56.22
flKeys877 6630 16.27 52.77

#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;
// function prototypes
void  tagReader ( ifstream& inFile, int&count);
void getEmployee ( string& who, double& rate, int &hours );
double paycheck (int hours, double rate);
void repeater ( string word, int num);
bool valid (int val);
void header ();


//=========================================================
int main() 
{    
    int count = 0; 
    ifstream inFile;
    int first, last;
    //----------------------------------------
    // Call function tagReader with tags1.txt
    inFile.open("tags1.txt");
    
    if (!inFile) 
    {
        cout << "\n\nError! - Invalid file name!  (1)\n\n";
        system ("pause");
        return 1;
     
    }

    cout <<"Results from tags1.txt :\n";
    tagReader ( inFile, count);    
    cout << "File tags1.txt had " << count << " data items. \n\n";
    inFile.close ();
    
    //----------------------------------------
    // Call function tagReader with tags2.txt
    inFile.clear (); 
    inFile.open("tags2.txt");
    if (!inFile) 
    {
        cout << "\n\nERROR!  Invalid file name! (2)\n\n";
        system ("pause");
        return 1;
     
    }

    cout <<"Results from tags2.txt :\n";
    tagReader ( inFile, count);    
    cout << "File tags2.txt had " << count << " data items. \n\n";
    inFile.close ();
    
    
   system("pause");
   return 0;
}
//-----------------------------------------------------
void tagReader (ifstream& inFile, int&count)
{    

}
2
Contributors
10
Replies
9 Hours
Discussion Span
2 Years Ago
Last Updated
11
Views
plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0

I don't see an "an EOF controlled while loop" anywhere in the code at all. We can't help fix what's not there. Set up the WHILE loop, read from inFile, and when EOF is reached, exit the loop.

WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 36

I do not know how to write EOF controlled while loops.

plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0

There are plenty of examples on this site. Use SEARCH.

WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 36

Would you write a EOF loop as:

while(inFile){
}

and include it in the void tagReader section

plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0

Would you write a EOF loop as:

while(inFile){
}

I wouldn't. I'd do the search and learn from what I find.

WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 36

Thanks for not helping me. I really appreciate it. I am only a student taking my first programming class.

plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0

I'm sorry. I didn't realize the only help that will be accepted is to have us write the code for you. I was hoping you'd be interested in learning enough to do some of your own work, not rely on others to do it for you. Again, sorry.

WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 36

Its alright, I am not relying to you, but I tried searching and can not find an answer. Could you provide a link on eof controlled loops?

plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0
WaltP
Posting Sage w/ dash of thyme
Team Colleague
11,404 posts since May 2006
Reputation Points: 3,421
Solved Threads: 1,055
Skill Endorsements: 36

Here is my code: I do not know why when I compile it, on why does the last cylinder file print out multiple times int tags1 and tags2. I bolded them so you would see what I am talking about. Could someone please help me out?

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>

using namespace std;
// function prototypes
void  tagReader ( ifstream& inFile, int&count);
void getEmployee ( string& who, double& rate, int &hours );
double paycheck (int hours, double rate);
void repeater ( string word, int num);
bool valid (int val);
void header ();


//=========================================================
int main() 
{    
    int count = 0; 
    ifstream inFile;
    string cylinder, serial;
    double num1, num2;
    double counter;
   
    //----------------------------------------
    // Call function tagReader with tags1.txt
    inFile.open("tags1.txt");
    
    if (!inFile) 
    {
        cout << "\n\nError! - Invalid file name!  (1)\n\n";
        system ("pause");
        return 1;
    }
         inFile >> cylinder;
         while (inFile) 
         {
    
         inFile>> serial;
         inFile >> num1;
         inFile >> num2;
         cout << fixed << showpoint << setprecision(2);
         cout <<"Cylinder: " << cylinder << " " << serial << " " << num1 << " " << num2 << endl << endl;   
         count = 1;
         counter++;
         while (count < num1)
         {     inFile >> cylinder ;
               inFile >> serial;
               inFile >> num1;
               inFile >> num2;
               cout << "\nCylinder: " << cylinder << " " << serial << " " << num1 << " " << num2 << endl << endl; 
               count++;        
         }
       }

    cout <<"Results from tags1.txt :\n";
    tagReader ( inFile, count);    
    cout << "File tags1.txt had " << count << " data items. \n\n";
    inFile.close ();
    
    //----------------------------------------
    // Call function tagReader with tags2.txt
    inFile.clear (); 
    inFile.open("tags2.txt");
    if (!inFile) 
         {
          cout << "\n\nERROR!  Invalid file name! (2)\n\n";
          system ("pause");
          return 1;
         }   
         
         inFile >> cylinder;
         while (inFile) 
         {
    
         inFile>> serial;
         inFile >> num1;
         inFile >> num2;
         cout << fixed << showpoint << setprecision(2);
         cout <<"Cylinder: " << cylinder << " " << serial << " " << num1 << " " << num2 << endl << endl;   
         count = 1;
         counter++;
         while (count < num1)
         {     inFile >> cylinder ;
               inFile >> serial;
               inFile >> num1;
               inFile >> num2;
               cout << "\nCylinder: " << cylinder << " " << serial << " " << num1 << " " << num2 << endl << endl; 
               count++;        
         }
       }

    cout <<"Results from tags2.txt :\n";
    tagReader ( inFile, count);    
    cout << "File tags2.txt had " << count << " data items. \n\n";
    inFile.close ();
    
   system("pause");
   return 0;
}
//**********************************************************************
//Function Name: GetLength
// Prompts the user to input the lenth of a rectangular room
// Returns the int value input by the user
//**********************************************************************
void tagReader (ifstream& inFile, int&count)
{    

}

Output:

Cylinder: bsharkdata 1782 12.00 82.90


Cylinder: ftmyersfeb 7150 11.00 32.89


Cylinder: sandiego99 8800 15.20 52.76


Cylinder: turtles666 2180 11.00 14.09


Cylinder: turtles765 4223 11.90 17.10


Cylinder: FredsFish 4145 11.60 42.22


Cylinder: GreatBaReef 8673 10.00 11.40


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00


Cylinder: VaBch77June 1111 13.50 44.00

Results from tags1.txt :
File tags1.txt had 14 data items.

Cylinder: turtles686 2110 14.88 65.19


Cylinder: turtles995 1123 61.60 77.17


Cylinder: UKFishData 4145 99.04 22.98


Cylinder: Gr8BaReef2 8673 19.71 76.12


Cylinder: VaBch78876 1111 69.11 51.10


Cylinder: shark9987 1782 83.40 89.11


Cylinder: florida331 3130 14.01 52.89


Cylinder: florida876 6600 15.20 52.76


Cylinder: flKeys331 4410 64.66 56.22


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77


Cylinder: flKeys877 6630 16.27 52.77

Results from tags2.txt :
File tags2.txt had 17 data items.

Press any key to continue . . .

plang007
Junior Poster in Training
68 posts since Feb 2011
Reputation Points: 5
Solved Threads: 0
Skill Endorsements: 0

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
View similar articles that have also been tagged:
 
© 2013 DaniWeb® LLC
Page rendered in 0.0964 seconds using 2.81MB