Is that code a direct copy? I ran it and it worked exactly as expected. If this was just an example fragment it would help to see the rest of the code so that we know more of what is trying to be accomplished.
Edit: I just realized something. You are trying to read from a file that has been opened for write. I didn't read the OP close enough. You are not getting the line to print into the file a second time because you are trying to read it from a write file. Close the file, reopen it for reading, copy the contents to a second temporary file, and then copy it. This snippet is more what you are looking for. It should give you an idea of what needs to happen to do what you are looking for:
#include "DarkGDK.h"
void DarkGDK ( void )
{
char* GameName = "Game1.txt", *GameTmp = "tmp.tmp";
char* Text;
char* Text2;
dbDeleteFile(GameName);
dbOpenToWrite(1,GameName);
Text = dbInput();
dbWriteString(1,Text);
dbWriteString(1,"AAAA");
dbCloseFile (1);
dbOpenToRead (1, GameName);
dbOpenToWrite (2, GameTmp);
Text2 = dbReadString (1);
dbWriteString (2, Text2);
while (!dbFileEnd (1)) {
Text = dbReadString (1);
dbWriteString (2, Text);
}
dbWriteString (2, Text2);
dbCloseFile (1);
dbCloseFile (2);
dbDeleteFile (GameName);
dbRenameFile (GameTmp, GameName);
return;
}