Escribiendo entrada de usuario a un archivo en C

Estoy trabajando en un progtwig para escribir las entradas del usuario en un archivo y luego buscar un registro específico en el archivo y enviarlo a la pantalla. Intenté usar fgets y también fputs, pero no he tenido éxito.

#include  #include  #include  main () { FILE *fileptr; char id [30]; char name [47]; char amt[50]; int i; fileptr=fopen("C:\\Users\\Andrea\\Documents\\Tester.txt","w"); if (fileptr == NULL) { printf("File couldn't be opened\n\a\a"); fclose(fileptr); exit(0); } printf("Enter name: \n"); fscanf(fileptr,"%c",name); fputs(name,fileptr); fclose(fileptr); printf("File write was successful\n"); return 0; } 

Hay varios problemas.

  1. Estás intentando leer desde fileptr .
  2. Está leyendo solo un carácter, pero trate la matriz de name como si se hubiera leído correctamente.

Un comienzo sería:

  [...] printf("Enter name: \n"); if (fgets(name, sizeof name, stdin)) { fputs(name,fileptr); fclose(fileptr); printf("File write was successful\n"); } else { printf("Read error.\n"); } 

Pero eso no es todo: se ha olvidado de poner la comprobación de errores. Por ejemplo, ¿cómo sabe que su "File write was successful\n" si no verifica al menos el valor de retorno de fputs() ?