New Reply

C++: continuous reading file while doing calculation in between?

 
Share Thread Thread Tools
Dec14-10, 07:57 AM   #1
 

C++: continuous reading file while doing calculation in between?


1. The problem statement, all variables and given/known data
I have 1 class for reading parameter from file (example below) and 1 class for doing calculation
For every step, I'd like to read in parameter and do calculation in between.

For i = 0 to number of lines in parameter file
Read in parameter;
Calculation;
End

My problem is that I don't know how to read a file continuously. Every time I called the function in parameter class, it just received the first line :(

Could anyone give me some suggestion?
Thank you

* Sample parameter file
Code:
m	TD	T	V	Sa	Sb
0.5	246.6	39.6	6.1	0.4	0.6
0.5	394.8	39.7	4.6	0.9	0.2
0.0	391.3	39.0	3.6	1.0	0.6
0.4	350.1	39.0	8.8	0.6	0.3
0.3	94.1	38.9	6.0	0.6	0.7
0.5	95.0	38.5	7.2	1.0	0.0
0.3	86.4	39.3	3.4	0.4	0.4
0.5	404.5	39.8	0.9	0.9	0.3
0.4	252.7	39.3	7.9	0.6	0.4
0.5	1.3	39.9	2.4	1.0	0.7
0.2	36.0	39.9	3.5	0.4	0.5
...
The attempt at a solution

Parameter class:

Code:
bool parameters::get_parameter_from_file(const string &filename)
{
 
    ifstream inputfile(filename.c_str());

    if ( !inputfile )
    {
        cerr << "Error: file could not be opened" << endl;
        return false;
    }

    string dummy_string;                // temporary string to store unnecessary words

    // read through the header
    inputfile >> dummy_string >> dummy_string >> dummy_string
            >> dummy_string >> dummy_string >> dummy_string;

    // read parameters
    inputfile >> m >> TD >> T >> V >> Sa >> Sb;

   inputfile.close();
    return true;
}
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Ants and carnivorous plants conspire for mutualistic feeding
>> Forecast for Titan: Wild weather could be ahead
>> Researchers stitch defects into the world's thinnest semiconductor
Dec14-10, 08:03 AM   #2
D H
 
Mentor
Pass the stream as an argument to get_parameter_from_file instead of the file name.
Dec14-10, 08:14 AM   #3
 
Quote by D H View Post
Pass the stream as an argument to get_parameter_from_file instead of the file name.
Thanks. Maybe I'm just stupid but could you plz be more detailed on your point?
Dec14-10, 08:24 AM   #4
D H
 
Mentor

C++: continuous reading file while doing calculation in between?


The entire problem stems from your opening the file inside that function and then closing it before exiting. The solution is the same as the advice given by a doctor to a complaint, "Doc, it hurts when I do this." The advice: "Don't do that then."

What you need to do instead is to pass the stream as an argument to the function instead of creating the stream inside the function. That means you have to create (and destroy) the stream outside of your function. In your main(), for example.
Dec15-10, 03:15 AM   #5
 
Thanks DH. Mine works fine now!
New Reply

Tags
c++ assignment, class, read file
Thread Tools


Similar Threads for: C++: continuous reading file while doing calculation in between?
Thread Forum Replies
Help with reading file into FORTRAN Programming & Comp Sci 0
Fortran 90 help reading from file Programming & Comp Sci 2
Help Reading A .txt File Into A 2D Array In C Engineering, Comp Sci, & Technology Homework 6
Reading in lines from a file Programming & Comp Sci 3