Du vermischst in Deinem Quellcode verschiedene Standards. Ich denke, Du solltest erstmal nur den Ansi-C Standard verwenden. Das Ganze sieht dann so aus:
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *f ;
char a[100] ;
int i ;
f = fopen("datei.txt","w") ;
system("CLS") ;
printf("Bitte einen Text eingeben (mit Enter beenden):\n\n") ;
gets(a) ;
for(i = 0; i <= 200; i++)
{
if(a[i]!= '\0')
{
fputc(a[i],f);
}
else
{
break ;
}
}
fclose(f);
printf("\n\n----------------\nDas Programm ist beendet.\n\n") ;
system("PAUSE") ;
}
Der Fehler war allerdings nur, dass Du in Deinem char-Array nicht nach der Null-Terminierung gesucht hast, sondern das ganze Array in die Datei geschrieben hast. Da steht dann natürlich nur Murks drin. Versuch's mal so, wie ich es gemacht habe.