39

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

int main () {
  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

Thanks in advance

Bentoy13
  • 4,886
  • 1
  • 20
  • 33

7 Answers7

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;
}
Viet
  • 17,944
  • 33
  • 103
  • 135
33

The file streams are actually defined in <fstream>.

7

You may not be including the appropiate header file.

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

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.

1800 INFORMATION
  • 131,367
  • 29
  • 160
  • 239
0

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

-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;
}
Sid110307
  • 497
  • 2
  • 8
  • 22
  • Please format your code properly and see: [Why is “using namespace std;” considered bad practice?](https://stackoverflow.com/q/1452721/10871073) – Adrian Mole Jul 17 '21 at 17:31
-2

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

Abhishek Dutt
  • 1,308
  • 7
  • 14
  • 24