How do I use fstream (specifically ofstream) through a functions parameters

c++

Solution

First of all, this is fine:

void output(ofstream& out)
{
    out << "does this work?" << endl;
}

However, this is not:

int main()
{
    output(ofstream& out); // what is out?
    ifstream in;
    in.open("inven.txt");
    ofstream out;
    out.open("results.txt");
return 0;
}

This is the first error you get: "Error C2065: 'out' : undeclared identifier", because the compiler doesn't know about out yet.

In the second fragment you want to call output with a specific `ostream&`. Instead of calling a function, you're giving a function declaration, which isn't allowed in this context. You have to call it with the given `ostream&`:

int main()
{
    ifstream in;
    in.open("inven.txt");
    ofstream out;
    out.open("results.txt");
    output(out); // note the missing ostream&
    return 0;
}

In this case you call `output` with `out` as parameter.

Problem

Hi I'm a `c++` beginner and this is one of my assignments and I'm a bit stuck. This isn't my entire code it's just a snippet of what I need help with. What I'm trying to do is have one function dedicated to exporting everything with that function into a `text` file which is called results.txt. So the line "does this work" should show up when I open the file, but when I run the file I get errors like "Error C2065: 'out' : undeclared identifier" "Error C2275: 'std::ofstream' : illegal use of this type as an expression" "IntelliSense: type name is not allowed" "IntelliSense: identifier "out" is undefined" ``` #include <iostream> #include <string> #include <fstream> using namespace std; //prototypes void output(ofstream& out); int main() { output(ofstream& out); ifstream in; in.open("inven.txt"); ofstream out; out.open("results.txt"); return 0; } void output(ofstream& out) { out << "does this work?" << endl; } ``` Right now it's really late and I'm just blanking out on what I'm doing wrong.

Original source