40

I am getting an ofstream error in C++, here is my code

#include <iostream>

int main() {
    std::ofstream myfile;
    myfile.open("example.txt");
    myfile << "Writing this to a file.\n";
    myfile.close();
    return 0;
}

error from Dev-C++ 10

C:\devp\main.cpp aggregate `std::ofstream OutStream' has incomplete type and cannot be defined

0

7 Answers 7

69

You can try this:

#include <fstream>

int main () {
  std::ofstream myfile;

  myfile.open ("example.txt");
  myfile << "Writing this to a file.\n";
  myfile.close();

  return 0;
}
Sign up to request clarification or add additional context in comments.

Comments

33

The file streams are actually defined in <fstream>.

Comments

7

You may not be including the appropiate header file.

adding #include <fstream> at the beggining of your source file should fix the error.

Comments

2

Probably, you are including the wrong header file. There is a header <iosfwd> that is used for header files that need to reference types from the STL without needing a full declaration of the type. You still are required to include the proper header <iostream> in order to use the types in question.

Comments

0

Include fstream header file that's it. Because ofstream & ifstream are included in fstream.

Comments

-1

Add #include <fstream>.

Code:

#include <iostream>
#include <fstream>

using namespace std;

int main() {

    std::ofstream myfile;
    myfile.open("example.txt", std::ios::out);
    myfile << "Writing this to a file\n";
    myfile.close();

    return 0;
}

1 Comment

Please format your code properly and see: Why is “using namespace std;” considered bad practice?
-2

I faced the same error because I forgot to use using namespace std; after including it, the problem was solved.

1 Comment

forgetting std would have resulted in compile error and not a runtime error

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.