Reemplazo de carácter de impresión fscanf.
#include <assert.h>
#include <ctype.h>
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
//abriendo collection.txt usando ptr
FILE *ptr;
char data[1000];
ptr = fopen("collection.txt", "r");
printf("Hola mundo \n");
fscanf(ptr, "%s", data);
printf("%s \n", data);
fclose(ptr);
return 0;
}
collection.txt:
hi mi nombre es
Cuando ejecuto este programa obtengo:
ninguno
Hola mundo
P7k
P7k es una dirección de memoria, supongo.
He mirado varios sitios web y artículos y no he podido averiguar qué puedo hacer para imprimir el texto en collection.txt.
davy.ai
El problema con el código es que solo está leyendo la primera palabra del archivo collection.txt utilizando la función fscanf. Para leer todo el texto del archivo, podemos utilizar en su lugar la función fgets, que lee una línea de texto desde un puntero de archivo.
Podemos modificar el código de la siguiente manera:
Con esta modificación, el programa debería imprimir todo el texto del archivo collection.txt:
none
</string.h></stdlib.h></stdio.h></stdbool.h></math.h></ctype.h></assert.h>Hola mundo
hola mi nombre es