La función sscanf cambia el contenido de otra cadena.
Estoy teniendo problemas para leer cadenas consscanf
. He descartado el código para centrarme en el problema. A continuación se muestra una función en todo el código que se supone que abre un archivo y lee algo. Perosscanf
está actuando de forma extraña. Por ejemplo declaro una cadena llamadaatm
con el contenido'ATOM'
. Antes desscanf
imprime esta cadena comoATOM
mientras que después es nulo. ¿Cual podría ser el problema? Supongo que debe ser un problema de asignación, pero no pude encontrarlo. He intentado algunas sugerencias sobre otros temas como la sustitución%s
Con otras cosas pero no ayudó.
void Get (struct protein p, int mode, int type)
{
FILE *fd; //input file
char name[100]="1CMA"; //array for input file name
char string[600]; //the array where each line of the data file is stored when reading
char atm[100]="ATOM";
char begin[4];
int index1 =0;
fd = fopen(name, "r"); // open the input file
if(fd==NULL) {
printf("Error: can't open file.\n");
return 1;
}
if( type==0 ) { //pdb file type
if( mode==0 ) {
while( fgets(string, 600, fd)!=NULL ) {
printf("1 %s\n",atm);
sscanf (string, "%4s", begin );
printf("2 %s \n",atm);
}
}
}
fclose(fd);
free(fd);
free(name);
}