# classify number-to file not screen

Show 80 post(s) from this thread on one page
Page 1 of 2 12 Last
• 06-17-2007
BJtoVisualcC++
classify number-to file not screen
I am trying to make this change to read and write to a file with the file length unknown and to add into the program the sum and average of the number read from the file

Program: Classify Numbers
This program counts the number of zeros, odd, and even numbers *?*/

Code:

```#include <iostream> #include <iomanip> #include <fstream> using namespace std; //Function prototypes void initialize(int& zeroCount, int& oddCount, int& evenCount); void getNumber(int& num); void classifyNumber(int num, int& zeroCount, int& oddCount, int& evenCount); void printResults(int zeroCount, int oddCount, int evenCount); bool getNumber(ifstream& numberFile, int& zeros, int& odds, int& evens); void writeNumber(ofstream& resultsFile, int zeros, int evens, int odds, int sum, int avg); void calcSum( int zeros, int evens, int odds); int main () {     ifstream numberFile;     ofstream resultsFile;     int N;     int sum;     int avg;     //Variable declaration     int counter; //loop control variable     int number; //variable to store the new number     int zeros; //variable to store the number of zeros     int odds; //variable to store the number of odd integers s     int evens; //variable to store the number of even integers     //int sum; // sum of the numbers     //int avg; //average of the number     initialize(zeros, odds, evens); //Step 1     //cout << "Please enter " << N << " integers."     // << endl; //Step 2     //cout << "The numbers you entered are: "     // << endl;     //numberfile.open ("f:number.dat");     // if(inFile)     //cout<< "Open \ 'f:numberfile.dat\' " << endl;     //else     //cout << "File not opened \ 'f:number.txt\' << endl;     numberFile.open ("f:number.dat");     if(numberFile)     { //failure of opening number file         cout << "Error in opening number file .\n" << endl;         system ("pause");         return 0;     }     resultsFile.open("f:results.dat");     if(!resultsFile)     { //failure of opeinging results file         cout << "Error in opening results file .\n" << endl;         system("pause");         return 0;     }     while ( getNumber (numberFile, zeros, odds, evens))     {         for (counter = 1; counter <= N; counter++) //Step 3         {             getNumber(number); //Step 3a             cout << number << " "; //Step 3b             classifyNumber(number, zeros, odds, evens); //Step 3c         }// end for loop         // calcSum (zeroCount, evenCount, oddCount);         writeNumber(resultsFile, zeros, odds, evens, sum, avg);     }     cout << endl;     printResults(zeros, odds, evens); //Step 4     return 0; } void initialize(int& zeroCount, int& oddCount, int& evenCount) {     zeroCount = 0;     oddCount = 0;     evenCount = 0; } void getNumber(int& num) {     cin >> num; } void classifyNumber(int num, int& zeroCount, int& oddCount, int& evenCount) {     switch (num &#37; 2)     {     case 0:         evenCount++;         if (num == 0)             zeroCount++;         break;     case 1:     case -1:         oddCount++;     } //end switch } int calcSum( int zeroCount, int oddCount, int evenCount) {     calcuSum =(zeroCount + oddCount + evenCount); } void printResults(int zeroCount, int oddCount, int evenCount) {     cout << "There are " << evenCount << " evens, "     << "which includes " << zeroCount << " zeros"     << endl;     cout << "The number of odd numbers is: " << oddCount     << endl;     // calcuSum }```
• 06-17-2007
mike_g
Oops I thought you were referring to the old question you posted about writing to files. Well, the first thing I noticed with this was that you were trying to assign a value to the function, same problem you had with your triangle prog.

Also one of your functions differs from the prototype:
Code:

```void calcSum( int zeros, int evens, int odds); int calcSum( int zeroCount, int oddCount, int evenCount) { calcuSum =(zeroCount + oddCount + evenCount); }```
In C++ you dont need to name the variables in your prototype, so you can declare your prototype like:
[code]int calcSum(int, int, int);[code]

I changed your function from void to int as it looks like you want to be returning a total here.Your function should then look something like:
Code:

```int calcSum( int zeroCount, int oddCount, int evenCount) {     return zeroCount + oddCount + evenCount; }```
With those changes I am now getting error messages: undefined references to getNumber , and writeNumber. I'll look into that later if no-one else here helps out first.
• 06-17-2007
robwhit
you define
Quote:

void getNumber(int& num);
but not
Quote:

bool getNumber(ifstream& numberFile, int& zeros, int& odds, int& evens);
• 06-17-2007
BJtoVisualcC++
• 06-17-2007
BJtoVisualcC++
Mike you may have trouble if you have not made the two files to retrieve and send data
• 06-17-2007
robwhit
Quote:

void writeNumber(ofstream& resultsFile, int zeros, int evens, int odds, int sum, int avg);
writeNumber(resultsFile, zeros, odds, evens, sum, avg);
see any differences? (evens/odds)
• 06-17-2007
BJtoVisualcC++
no what difference? no wait take the void off?--may be stupid but I am new and I am trying
• 06-17-2007
robwhit
Code:

```void writeNumber(ofstream& resultsFile, int zeros, int evens, int odds, int sum, int avg); writeNumber(resultsFile, zeros, odds, evens, sum, avg);```
they're switched.
• 06-17-2007
BJtoVisualcC++
robwhit I did as you said and it comes immediately with an error saying odds not declared
• 06-17-2007
BJtoVisualcC++
robowhit earlier statement what?
• 06-17-2007
BJtoVisualcC++
mike_g I changed the type at the end of the program to int calculate sum but does it need to change when you delcare it at the top of the program
• 06-17-2007
BJtoVisualcC++
now the program is saying the bottom calculate sum is undelcared?
• 06-17-2007
robwhit
post the modified code.

ps - you may want to use the edit function in the message board for when you have a little something additional to say.
• 06-17-2007
BJtoVisualcC++
I found the calcusum it was misspelled should be calcsum and it still has an error
• 06-17-2007
BJtoVisualcC++
thanks for finding that out of order sequence
Show 80 post(s) from this thread on one page
Page 1 of 2 12 Last