problema con el especificador de conversion %d en c

Iniciado por mort, 4 Enero 2015, 01:39 AM

0 Miembros y 1 Visitante están viendo este tema.

mort

el problema es que no entiendo por que me marca "codigo fuente no compilado" el dev c++.
es decir, me voy a explicar, porque cuando pongo:

                                     printf("%d%d%d%d\n", 1, 2, 3, 4);

si me compila bien, me imprime "1234", pero cuando intento hacer lo mismo mediante cuatro instrucciones printf, es decir:

printf("%d", 1);
printf("%d", 2);
printf("%d", 3);
printf("%d", 4);

me aparece : "codigo fuente no compilado"
otra cosa es que si le agrego la secuencia de escape \n a la ultima instrucion, si me compila bien:

printf("%d", 1);
printf("%d", 2);
printf("%d", 3);
printf("%d\n", 4);

pero situandome en otro contexto en el que solo quiero imprimir un numero, es decir, si hago esto:

printf("%d\n", 1);

no me funciona tenga o no la secuencia de escape \n.
aqui mi duda es porque pasa esto, cual es la diferencia entre poner:

printf("%d%d%d%d\n", 1, 2, 3, 4)
o
printf("%d\n", 1)

por que el primero si me compila tenga o no la secuencia de escape \n y el otro lo tenga o no lo tenga me marca: "codigo fuente no compilado"

¿tiene que ver la cantidad? o ¿ es error de mi computadora o del compilador?

rir3760

Cita de: mort en  4 Enero 2015, 01:39 AM¿ es error de mi computadora o del compilador?
Del compilador ya que imprimir mediante una sola llamada a printf o varias no debe generar ningún error. De todos modos y solo para estar seguros deberías publicar el código fuente completo.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Yoel Alejandro

Sí, publica el código completo porque la verdad todo está bien, no tendría por qué arrojar un error  :huh:
Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)

mort

aqui esta, este programa me compila bien  :)

#include <stdio.h>

int main ()
{
   printf("%d%d%d%d\n", 1, 2, 3, 4);
   
   return 0;
}

este otro no  :-\

#include <stdio.h>

int main ()
{
   printf("%d\n", 1);
   
   return 0;
}
no entiendo que pasa, me lanza un mensaje de advertencia y me dice "codigo fuente no compilado"

rir3760

Cita de: mort en  4 Enero 2015, 04:17 AMme lanza un mensaje de advertencia y me dice "codigo fuente no compilado"
En ese caso por favor publica el mensaje de advertencia completo.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

mort

Ese es el mensaje de advertencia completo.
Aparece en una ventana pequeña y solo me da la opción de presionar "ok", al final no puedo compilar, y no me dice dice el porque, (También el antivirus me avisa que se detecto una amenaza y que ya no se requieren mas acciones, cosa que no me sorprende porque mi antivirus tiene problemas, todos los días le pasa lo mismo en donde sea) incluso el panel de abajo que muestra los resultados no muestra ningún error.

engel lex

lo unico que se me ocurre es que por alguna razon está haciendo una violacion de memoria o tomando algo que no debería y el av para el compilador, el IDE te avisa que no fue compilado, deten el av e intenta compilar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

mort

Otra cosa:
Este error no me sucede cuando ejecuto el Dev C++ como administrador, pero si como invitado.

Cita de: engel lex en  5 Enero 2015, 07:39 AM
lo unico que se me ocurre es que por alguna razon está haciendo una violacion de memoria o tomando algo que no debería y el av para el compilador, el IDE te avisa que no fue compilado, deten el av e intenta compilar

Disculpa mi ignorancia, pero no se  que es el av,ni  tampoco se como detenerlo.

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.