Question: I have the following code, running on Suse 10.1 / G++ 4.1.0, and it doesn't write to the file:

```
#include <fstream>
#include <iostream>

int main(){
    std::ofstream file("file.out");
    file << "Hello world";
}

```

The file is correctly created and opened, but is empty.
If I change the code to:

```
#include <fstream>
#include <iostream>

int main(){
    std::ofstream file("file.out");
    file << "Hello world\n";
}

```

(add a `\n` to the text), it works.
I also tried flushing the ofstream, but it didn't work.

Any suggestions?

Answer: 
**The destructor should flush and close the file.**

I am pretty sure, the error is an another place, either

1) You do not check at the right point in time. At which point do you compare the content of the file, "after" the exits, or do you set a breakpoint before the program exits and then you check the files content?

2) Somehow the program crashes before it exits?
Does

```
file << "Hello world" << std::endl;

```

work?

endl inserts a newline and flushes the buffer. Is that what you were referring to when you said that you'd already tried flushing it?