My professor is very smart but expects complete noobs like me to just know how to program c++. I don't understand how the fstream
function works.
I will have a data file with three columns of data. I will have to determine with a logarithm whether each line of data represents a circle, rectangle or triangle - that part is easy. The part I don't understand is how the fstream
function works.
I think I:
#include < fstream >
then I should declare my file object?
ifstream Holes;
then I open it:
ifstream.open Holes; // ?
I don't know what the proper syntax is and I can't find straightforward tutorial. Everything seems way more advanced than my skills can handle.
Also, once I've read-in the data file what is the proper syntax to put the data into arrays?
Would I just declare an array e.g. T[N]
and cin
the fstream
object Holes
into it?
Basic ifstream
usage:
#include <fstream> // for std::ifstream
#include <iostream> // for std::cout
#include <string> // for std::string and std::getline
int main()
{
std::ifstream infile("thefile.txt"); // construct object and open file
std::string line;
if (!infile) { std::cerr << "Error opening file!\n"; return 1; }
while (std::getline(infile, line))
{
std::cout << "The file said, '" << line << "'.\n";
}
}
Let's go further and assume we want to process each line according to some pattern. We use string streams for that:
#include <sstream> // for std::istringstream
// ... as before
while (std::getline(infile, line))
{
std::istringstream iss(line);
double a, b, c;
if (!(iss >> a >> b >> c))
{
std::cerr << "Invalid line, skipping.\n";
continue;
}
std::cout << "We obtained three values [" << a << ", " << b << ", " << c << "].\n";
}
Let me step through each part of reading the file.
#include <fstream> // this imports the library that includes both ifstream (input file stream), and ofstream (output file stream
ifstream Holes; // this sets up a variable named Holes of type ifstream (input file stream)
Holes.open("myFile.txt"); // this opens the file myFile.txt and you can now access the data with the variable Holes
string input;// variable to hold input data
Holes>>input; //You can now use the variable Holes much like you use the variable cin.
Holes.close();// close the file when you are done
Please note that this example doesn't deal with error detection.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With