write to file ... trivial?

Denis Koroskin 2korden at gmail.com
Thu Oct 7 01:06:01 PDT 2010

On Thu, 07 Oct 2010 01:36:23 +0400, Dr. Smith <iam at far.out> wrote:

> Thank you.  Indeed, I forgot: auto f = File("outfile.txt", "w");
> Interestingly, this apparently works within a for-loop to overwrite the  
> file on
> the first iteration and appending otherwise (Should there not be an  
> explicit
> append arg?):

That's a correct behavior. See how it works: when you open a file, you a  
get a "pointer" into that file. Every time you write N bytes to that file,  
your pointer advances the same amount. E.g.


is essentially the same as:


If that is not that you want, then you need to store you pointer before  
writing, and seek back afterwards:

(I don't know the proper syntax so that is a pseudo-code)
auto pos = file.tell();

In this case, you will first write "aaa" to file and then overwrite it  
with "bbb".

That's the way file I/O works in every OS I know of and that's probably  
because that's the way hard disks work in general.

Hope that helps.

More information about the Digitalmars-d-learn mailing list