BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

duda de lenguaje c: float con coma en lugar de punto

BocaDePez
BocaDePez

quiero exportar a un archivo unos datos float para poderlo abrir con el excel. el problema es que c exporta los reales con punto decimal y excel con coma, de manera que si lo pones con punto no vale.
hay alguna manera de exportar con coma?
saludos

BocaDePez
BocaDePez

por otra parte, al llamar a la funcion qsort me tira un warning de argumento con puntero incompatible, aunque funciona perfectamente.
la funcion de comparacion es esta
int cmp(int *,int *)
y la llamada a qsort esta
qsort(lista,tamano,sizeof(lista[0]),&cmp);
aunque he probado tambien asi y me sigue danto warning con el ultimo argumento
qsort(lista,tamano,sizeof(lista[0]),cmp);

saludos

🗨️ 7
GetA1

qsort(lista,tamano,sizeof(lista[0]),&cmp);

Prueba qsort((int)lista,(int)tamano,sizeof(lista[0]),&cmp);

Saludos

🗨️ 6
BocaDePez
BocaDePez

el error me lo da en el cuarto parametro
gracias

🗨️ 5
GetA1

No he usado esta función pero en el ejemplo que estoy leyendo viene así:

int comp (const void *i, const void *j);
int sort[100],i;
qsort(sort,100,sizeof(int),comp);

Puedes probar anteponiendo (int) a &cmp??

🗨️ 4
BocaDePez
BocaDePez
BocaDePez
BocaDePez
🗨️ 2
GetA1
🗨️ 1
BocaDePez
BocaDePez
BocaDePez
BocaDePez

nadie sabe?

BocaDePez
BocaDePez

Lo único que se me ocurre es que al fichero exportado le pases un sed para cambiar punto por coma. :-?

En resumen: antes de hacer la exportación cambias el campo de salida a fichero y le pones la coma tu, o cambias el fichero obtenido.

🗨️ 2
BocaDePez
BocaDePez

claro, pero para que lo genere sin tener que reemplazar yo nada, no hay algun especificador o una funcion no estandar que permita imprimir reales con coma?
y como podria crearme la funcion yo?
saludos

🗨️ 1
BocaDePez
BocaDePez

funciones de como pasar numericos a caracteres de textos a cientos por la web. y al reves tambien.

entonces elije usted , o . o # o @ lo que quiera. aunque a karma le extraña y mucho que en estos tiempo no exista una macro o funcion con dicha opcion.

Add on: tambien puede redondear a numero entero Jint jint jint... 8-)

BocaDePez
BocaDePez

convirtiendolo a una cadena de texto y luego esta a una cadena numerica con alguna funcion del excel... a saber, basic u otra cosa.

GetA1

Prueba con esto

#include
#include
int main(void)
{
struct lconv lc;
lc = *localeconv();
printf("simbolo decimal es:%s\n",lc.decimal_point);
return 0;
}

Espero que te ayude

Fuente: C Manual de referencia Herbert Schildt McGRAW HILL
PD: Las include son stdio.h y locale.h
No lo he probado

🗨️ 1
BocaDePez
BocaDePez

esto ya lo solucione. hice una funcion que transformaba a cadena de caracter y despues cambiaba punto por coma.
saludos