Guarda basura al leer string desde un fichero.[RESUELTO]

Iniciado por utz, 13 Mayo 2012, 01:47 AM

0 Miembros y 2 Visitantes están viendo este tema.

utz

hola, estaba leyendeo un string de tamaño 77 desde un fichero.txt, pero cuando voy a imprimir el string me imprime solo los 70 primeros caracteres correctamente, el resto solo "basura".

Alguien me podria decir porque pasa esto y como arreglarlo por favor?
o bien que solo me diga como arreglarlo y ya me imaginare por que sucede :D

pd: estoy leyendo este string de la forma mas simple, con un fscanf... sin utilizar memoria dinamica ni nada de eso.


desde ya muchas gracias por su ayuda.

durasno

Hola! pone el codigo q estas haciendo, no podemos decirt q esta mal sino mostras nada, y aclara como esta formado tu fichero


Saludos
Ahorrate una pregunta, lee el man

utz

hola, esta es la forma en que leo el string, en el archivo en la primera linea hay un numero que me indica la longitud de la cadena y el en la siguiente linea esta la cadena que debo leer.
esto es lo que leo desde el fichero:
77
rwrwrwrwrwrwrwrwrwrwrwrwbwrwbwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwr

al momento de imprimir me muestra bien solo hasta la posicion 70, luego solo "basura"

FILE *filePointer=fopen("beads.in.txt","r");
    int n;
    fscanf(filePointer,"%d",&n);
    char beads[n];
    fscanf(filePointer,"%s",beads);
    fclose(filePointer);


durasno

Parece no haber problema con eso, pone como imprimis
Ahorrate una pregunta, lee el man

utz

lo imprimia con printf o con puts... pero ya da lo mismo, decidi hacerlo con memoria dinamica para salir del paso rapido.

saludos

durasno

mmm q raro, decidi compilarlo y me anda bien
int main(){
FILE *filePointer=fopen("beads.in.txt","r");
    int n;
    fscanf(filePointer,"%d",&n);
    char beads[n];
    fscanf(filePointer,"%s",beads);
    fclose(filePointer);
   
    printf("%s\n",beads);
getch();
return(0);
}


Saludos
Ahorrate una pregunta, lee el man