| 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 ... 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;
}
|
| Dec14-10, 08:03 AM | #2 |
|
Mentor
|
Pass the stream as an argument to get_parameter_from_file instead of the file name.
|
| Dec14-10, 08:14 AM | #3 |
|
|
|
| Dec14-10, 08:24 AM | #4 |
|
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 | ||