Necesito el %?? adecuado en printf

En este caso se trata para signed int16 y int32
He observado que el micro trabaja internamente bien estos valores , pero el %lu da lecturas falsas cuando el dato es (-) me da valores (+) descomunales
 
Última edición por un moderador:
si no me equivoco u es para unsigned, para signed, creo, es d.

Asi que deberia ser %d o %ld
 
Que no compila??? :confused: :confused: :confused:
Desde cuando el compilador C mira dentro de los strings????
El compilador C de CCS, si indica con un un error cuando el formato no es válido.
Sin embargo, el formato "%ld" lo interpreta sin problemas.
Pero si es capaz de identificar un formato inválido cómo por ejemplo; "%lt" o cualquier otro no identificado.

El error mostrado por el compilador, es el siguiente:
Código:
[B]*** Error 115 "SPI_Mem_Clonner.c" Line 29(35,36):[COLOR=Red] Printf format (%) invalid[/COLOR]  ::
      1 Errors,  0 Warnings.
Build Failed.[/B]
Éstos son los formatos disponibles para CCS PIC C Compiler:
Formatos PIC C CCS.jpg
 
Última edición:
Tenés razón D@rk :oops: :oops: :aplauso:
Efectivamente, si analiza los especificadores de formato para estimar el tipo de dato a mostrar. (y)

De todas formas, %ld es un formato estándar así que no puede dar error de compilación...
 
Vale, Vale, Vale. Es increíble la que he armado por una pequeña pregunta, pero a merecido la pena.
Por supuesto que quiero todo explicado y en castellano.

Muchas gracias por la tabla, mi libro de Dev C no contiene todo esto.
Os aseguro que los escandalizaré con más preguntas como estas, aunque no sea mi intención.

Deben comprender que no tengo vuestra formación como muchos de vosotros.
Aquíen Gipuzkoa es muy raro que te guste C.
Cada vez que encontraba un curso se cancelaba debido a que no nos inscribíamos los suficientes.
Todo lo tengo que aprender por mi cuenta y a base de preguntas cómo ésta.

Saludos.


Nota del Moderador:

Reglas generales de uso del foro (Extended Version)

05) Escribe de manera correcta y legible para todos. Estás en un Foro no en un Chat.
Esto incluye emplear signos de puntuación, (Por ejemplo "Punto y Aparte"), comenzar un renglón nuevo con mayúscula, abrir y cerrar una pregunta con signos de interrogación, etc.
 
Última edición por un moderador:
Pues a-mi me paso eso y más que eso.

Cursos incompletos, maestros que pedían dinero y compañeros incompetentes.
Uno aprende solo y no sabía que existía este foro si no hubiera preguntado, pero el daño ya está hecho. ;)
 
Última edición por un moderador:
NUEVA PREGUNTA: Dato float que muestre un solo decimal.

Hola float en LCD muestra 2 por defecto si pongo %f0 empeora mostrando 3 decimales
El caso es este:

float datof=1.5;
printf(lcd_putc,"datof = %f);

//Esto me muestra 1.50 cuando yo solo quiero 1.5 en todos los casos el segundo decimal sobra
//¿Que hago?



Vale, Vale, Vale. Es increíble la que he armado por una pequeña pregunta, pero a merecido la pena.
Por supuesto que quiero todo explicado y en castellano.

Muchas gracias por la tabla, mi libro de Dev C no contiene todo esto.
Os aseguro que los escandalizaré con más preguntas como estas, aunque no sea mi intención.

Deben comprender que no tengo vuestra formación como muchos de vosotros.
Aquíen Gipuzkoa es muy raro que te guste C.
Cada vez que encontraba un curso se cancelaba debido a que no nos inscribíamos los suficientes.
Todo lo tengo que aprender por mi cuenta y a base de preguntas cómo ésta.

Saludos.


Nota del Moderador:

Reglas generales de uso del foro (Extended Version)

05) Escribe de manera correcta y legible para todos. Estás en un Foro no en un Chat.
Esto incluye emplear signos de puntuación, (Por ejemplo "Punto y Aparte"), comenzar un renglón nuevo con mayúscula, abrir y cerrar una pregunta con signos de interrogación, etc.

Vale lo de puntos y mayusculas es facil. Sobre las faltas ortograficas tendre que mirarlo mas.
¿Es necesario la "tilde"? Casi nadie la utiliza Yo ni me acuerdo como se pone.
 
Última edición:
NUEVA PREGUNTA: Dato float que muestre un solo decimal.

Hola float en LCD muestra 2 por defecto si pongo %f0 empeora mostrando 3 decimales
El caso es este:

float datof=1.5;
printf(lcd_putc,"datof = %f);

//Esto me muestra 1.50 cuando yo solo quiero 1.5 en todos los casos el segundo decimal sobra
//¿Que hago?
En la descripción de los tipos de formato del mensaje #6, lo explica claramente.
Mira en donde dice sobre usar "w"
Por ejemplo:
printf("%4.1w",variable);

printf("%0.1f",variable);

Vale, lo de puntos y mayúsculas es fácil.
Sobre las faltas ortográficas tendré que mirarlo más.
¿Es necesario la "tilde"? Casi nadie la utiliza. Yo ni me acuerdo cómo se pone.
Si es necesario, porque da al texto leído aspectos fonéticos claramente diferentes.
Si casi nadie la utiliza, es porque no les gusta escribir correctamente.
 
Atrás
Arriba