Hace tiempo que no programo, pero aquí tienes una versión de calculadora, no lo he podido probar, sorry. Suerte.
void mostrar_operaciones()
{
printf("Operacion?\n");
printf("Sumar: '+'\n ");
printf("Restar: '-'\n ");
printf("Mult.: '*'\n ");
printf("Dividir:'/'\n" );
}
void main()
{
double x,y,z;
char a,b;
FILE *fp;
do
{
do{
mostrar_operaciones();
scanf("%c%*c",&a);
}
while(a != '+' && a!= '-' && a!='*' && a!='/');
printf("Introduzca los dos numeros a operar\n");
scanf("%lf %lf%*c",&x,&y);
switch(a)
{
case '+': z = x+y;
break;
case '-': z = x-y;
break;
case '*': z = x*y;
break;
case '/': { if (y!=0)
z = x/y;
else printf("Divison por cero!\n");
}
}
fp = fopen("calculadora.txt", "w");
if (fp == NULL)
{
printf("Error abriendo fichero calculadora.txt");
exit(-1);
}
/* Por que habre puesto un bucle??? No era necesario */
fprintf( fp,"%lf%c%lf = %lf\n", x,a,y,z);
fclose(fp);
printf("Desea realizar otra operacion? (s/n)");
scanf("%c%*c", &b);
}
while (b!='n');
}