[SOLUCIONADO] Problema intentando imprimir char * en C

Iniciado por Solid Water, Abril 29, 2020, 11:31:37 PM

Tema anterior - Siguiente tema

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

Abril 29, 2020, 11:31:37 PM Ultima modificación: Mayo 06, 2020, 01:03:32 PM por Gabriela
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:



Si se les ocurre, me dicen y pruebo.

Muchas gracias, y saludos

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.

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

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,

Mayo 05, 2020, 07:54:18 PM #3 Ultima modificación: Mayo 05, 2020, 08:09:12 PM por Solid Water
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.