Here's the code. I'm trying to read data from a text file and put it into an array... I'm trying to do this using a function.... can anyone please help..... it's not running. There's an error somewhere....

int main()
{

 
    

    float readFloat(std::ifstream& readFile)
    {
       float holdData = 0;
       while(holdData != (-(holdData)))//error checking 
       {
       readFile >> holdData;
       return holdData;
       }
    }

    
    
    float rainfallData[12] = {0.0F};
    int i; // loop counter
    ifstream myfile ("rainfall.txt");
    if( myfile.is_open() )
    {
        i = 0;
        while( i < 12 && myfile >> holdData[i] )
            i++;
    }
    
    
    
    
    
    void readFloatArray(std::ifstream& readFile, float *Array, const float Size)
    {
        float index = 0;
        //while index is not equal to Size AND !readFile.fail 
        //  Array[index] equals readInt(readFile);
        // ++index;
}

 





}

Function definitions belong outside of main(). One style is to put prototypes before main and definitions afterwards, or you can just put the definition before without needing a prototype

void myfunc(int, int);

int main()
{

}

void myfunc(int param1,int param2)
{


}

Edited 6 Years Ago by jonsca: n/a

Hi.... it still won't run... I've edited it... pls help again....
Here's the code

/**This program reads monthly rainfall data from a file called rainfall.txt which
contains 12 amounts of rainfall, performs some arithmetic processes on the data
and writes the processed data to a file called results.txt. **/

#include <iostream>
#include <fstream>
#include <string>
using namespace std;


float readFloat(std::ifstream& readFile)
    {
       float holdData = 0;
       while(holdData != (-(holdData)))//error checking 
       {
       readFile >> holdData;
       return holdData;
       }
    }

void readFloatArray(std::ifstream& readFile, float *Array, const float Size)
    {
        float index = 0;
        //while index is not equal to Size AND !readFile.fail 
        //  Array[index] equals readInt(readFile);
        // ++index;
    }
     

int main()
{
    float holdData;
 
    

    

    
    
    float rainfallData[12] = {0.0F};
    float i; // loop counter
    ifstream myfile ("rainfall.txt");
    if( myfile.is_open() )
    {
        float i = 0;
        while(i < 12 && myfile >> holdData[i] )
            i++;
    }
    
    
}

You have to pick one of your threads, don't just keep adding to both. What's not working about it?

You have to pick one of your threads, don't just keep adding to both. What's not working about it?

sorry.... was a mistake... reply here... or there... anywhere is fine.....

The program is not running.... telling me there's an error.... it says "invalid types `float[float]' for array subscript".... don't know what it means

Edited 6 Years Ago by schoolboy2010: n/a

floats are not an array subscript, ints are. You have it right there in the comments that it's a counter so it's not going to have decimal digits.
We won't be able to do this inch by inch, it looks like you made the first function and then tested it, no? Is that what you are trying to accomplish with this one?

Thanks a lot for your help... I'll figure something out... I'm like sleeping... appreciate your help though

You have to pick one of your threads, don't just keep adding to both.

sorry.... was a mistake... reply here... or there... anywhere is fine.....

No it isn't. "Anywhere is fine" doesn't solve the problem.

Other thread closed. Problem now solved.

This article has been dead for over six months. Start a new discussion instead.