Problema con fscanf en C.
Ok, así que he estado teniendo un problema al usar int y char para mi función. Y está obteniendo un mensaje de error quiero saber cómo debo solucionarlo con el código que tengo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char name[100];
int roll_no, chars;
float marks;
fp = fopen(“records.txt”, “r”);
if(fp == NULL)
{
printf(“Error al abrir el archivo\n”);
exit(1);
}
printf(“Probando la función fscanf(): \n\n”);
printf(“Nombre:\t\tNo. de rol\t\tCalificaciones\n”);
while( fscanf(fp, “Nombre: %s\t\tNo. de rol: %d\t\tCalificaciones: %f\n”
, name, &roll_no, &marks) != EOF )
{
printf(“%s\t\t%d\t\t%.2f\n”, name, roll_no ,marks);
}
fclose(fp);
return 0;
}
La salida esperada era esta …
Consejos/ayuda sobre cómo utilizar la función char en la línea 8 sería apreciado.
davy.ai
Parece que el problema es que no está utilizando el especificador de formato correcto para la variable
name
. El especificador de formato%s
se utiliza para cadenas de caracteres, por lo que debería utilizarse para la variablename
. También debe utilizar el especificador de formato%d
para la variableroll_no
, ya que es un número entero.Debe asegurarse de que los especificadores de formato en la función
fscanf()
coincidan con el orden de las variables en la funciónprintf()
.Su código debería verse así: