Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Solid Water en Abril 29, 2020, 11:31:37 PM

Título: [SOLUCIONADO] Problema intentando imprimir char * en C
Publicado por: Solid Water en Abril 29, 2020, 11:31:37 PM
Hola comunidad

Estoy teniendo problemas para imprimir un char * en C.
Lo estoy haciendo del siguiente modo, imprimirlo directo o copiarlo a un char[]
Había probado también unos bucles pero me daba resultados similares..
Lo escribe pero no entiendo bien la salida.

//Este char * llega como parámetro a una funcion
void function(char * Datos){   
FILE *file;
char msg[1000];
int j;

              strncpy(msg, Datos, 30);
                  file = fopen("salida.txt","a+");

            
         fprintf(file, Datos);
         
         fprintf(file, "%s", msg);
         fprintf(file, "%s", Datos);
         fprintf(file, "\n");

         fclose(file);
}

Imprime esto:

Уö Уö Уö 

Les dejo una captura del archivo:

(https://i.ibb.co/7RyLCqb/winbugs.png)

Si se les ocurre, me dicen y pruebo.

Muchas gracias, y saludos
Título: Re:Problema intentando imprimir char * en C
Publicado por: animanegra en Abril 30, 2020, 04:07:11 AM
Entiendo que originalmente estás metiendo caracteres imprimibles en la variable (¿Que se supone que has metido en esa variable?). Si deberías tener carácteres imprimibles, probablemente has metido mal el puntero a la función. No obstante, ¿Has probado a hacer un printf fuera de la función antes de llamar a esta? es por ver donde está el problema.
Por otro lado fprintf(file,variable); diréctamente así a pelo, está mal hecho. Nunca llames a una función con formato y no le pongas formato, después vienen los problemas.
Título: Re:Problema intentando imprimir char * en C
Publicado por: Solid Water en Abril 30, 2020, 09:58:00 PM
Hola Animanegra, si, te creo. También lo había probado.
Eso llega por un socket.
Dejame que cuando pueda lo imprimo en el servidor, para ver si está saliendo mal de fábrica.

Gracias,
Título: Re:Problema intentando imprimir char * en C
Publicado por: Solid Water en Mayo 05, 2020, 07:54:18 PM
Hola el tema principal de esto ha sido solucionado.

Con respecto al problema había 1 o 2 problemas.

El texto enviado se generaba dinámicamente dentro de algunos bucles.
Una variable del server definía la cantidad de iteraciones para uno de los bucles.
La variable de cantidad de iteraciones se había subido en el server pero no en el client.

Había algunas confunciones por que el valor de

SOH ASCII es 1 y el valor de '1' es 49.

Y múltiples conversiones de valores pasandolos de uno a otro (como estos y similares) y basura en archivos que intervenian en el proceso, generada por ambos problemas llevaba a la confusión.

PD: Me sirvio la charla con Animanegra, ya que fui directo a ver el server.
La verdad es que ando sin mucho tiempo para dedicarle.

Muchas Gracias, Saludos.