Eu fiz um codigo pra voce testar:
#include<stdio.h>#include<stdlib.h>#include<string.h>#define j 106#define s 115#define d 100#define p 112int main(){ FILE*fp; char c; if(!(fp=fopen("arquivo.txt","a+"))) //cria o arquivo e em caso de erro finaliza o prog { perror("\nErro ao criar arquivo!!!\n"); _sleep(3000); exit(0); } do{ c=getch(); //capturamos o caractere digitado switch(c) { case j: //se for igual a j imprime printf("%c",c); fprintf(fp,"%c",c); break; case s: //se for igual a s imprime printf("%c",c); fprintf(fp,"%c",c); break; case d: //se for igual a d imprime printf("%c",c); fprintf(fp,"%c",c); break; case p: //se for igual a p imprime printf("%c",c); fprintf(fp,"%c",c); break; default: //e se não for igual a nada espera tres segundos e finaliza o prog printf("\nCaractere invalido!!!"); fclose(fp); _sleep(3000); exit(0); break; } }while(1<2); fclose(fp); return(0);}
Se não der certo retire a função _sleep(); espero ter ajudado valeu!