Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Misma estructura diferentes mensajes para printf

Estas en el tema de Misma estructura diferentes mensajes para printf en el foro de C/C++ en Foros del Web. Hola que tal? no me di a explicar bien en el titulo pero miren esta es mi nueva duda... ya me di cuenta que no ...
  #1 (permalink)  
Antiguo 30/04/2009, 14:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 0
Misma estructura diferentes mensajes para printf

Hola que tal? no me di a explicar bien en el titulo pero miren
esta es mi nueva duda... ya me di cuenta que no soy muy bueno en C pero
bueno miren tengo una estructura simple que uso en 3 formas diferentes
por ejemplo un:

Código PHP:
if (vector[0]==v[i])
{
    
printf ("Un mensaje para tal X\n");
} else if (
vector[1]==v[i])
{
    
printf ("otro para otra X\n");
} else if (
vector[2]==v[i])
{
    
printf ("Otra X más\n");

quiero que sea una funcion pero como tal lo que cambia es unicamente el mensaje resultante de un printf();
el problema es que no sé como hacerlo alguién que me oriente por favor :D
de antemano gracias
  #2 (permalink)  
Antiguo 02/05/2009, 08:41
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
De acuerdo Respuesta: Misma estructura diferentes mensajes para printf

buenas,

Si deseas como dices hacer una funcion,

Lo que tiens que hacer es pasarle a la funcion lo valores que deseas comparar.

AnsiString funtion Hola(AnsiString value)
{
if (value=="Hola 1")
return "Hola esto es 1";
else
if (value=="Hola 2")
return "Hola esto es 2";
else
if (value=="Hola 3")
return "Hola esto es 3";
else
return "Valores no validos";
}

LAs variables que vayas a utulizar en la funcion debes pasarla por parametro a la funcion.

Saludos
  #3 (permalink)  
Antiguo 02/05/2009, 14:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 0
Exclamación Respuesta: Misma estructura diferentes mensajes para printf

Cita:
Iniciado por rodno Ver Mensaje

Código PHP:
AnsiString funtion Hola(AnsiString value)
{
if (
value=="Hola 1")
  return 
"Hola esto es 1";
else
if (
value=="Hola 2")
  return 
"Hola esto es 2";
else
if (
value=="Hola 3")
  return 
"Hola esto es 3";
else
  return 
"Valores no validos";

Hola que tal?
si sé que tengo que pasar esas variables por parametros
el problema es el siguiente...
lo único que cambia es lo siguiente te pongo la estructura que tengo:

Código PHP:
void imp_dieta(intvector)
{
    
int i;
    
int v[5];
    
aleatorio(); //De aquí sale el rand();
    
for (i=0;i<3;i++)
    {
        if (
vector[0]==v[i])
        {
            
printf ("Se recomienda comer por lo menos 5 veces al día\n"); //Esto cambie en cada uso que no sea estatico 
        
} else if (vector[1]==v[i])
        {
            
printf ("Por la mañana muchos carbohidratos\n"); //esta también cambie
        
} else
        {
            
printf ("Se recomienda carne o verduras cocidas\n"); //y este tambien lo pueda cambiar
        
}
    }

pero quiero que esa estructura la pueda usar en varias partes...
pero con mensajes diferentes.... si me entiendes o todavía no?
que esos printf tengan cadenas diferentes cada vez que las use pero no sé como
  #4 (permalink)  
Antiguo 03/05/2009, 23:45
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: Misma estructura diferentes mensajes para printf

Puedes hacer que a mas del vector, se reciba como parametro en la funcion tres arreglos de char que serían los mensajes correspondientes para cada condición, así por ejemplo:

Código c++:
Ver original
  1. void imp_dieta(int* vector, char mensaje1[],char mensaje2[],char mensaje3[])
  2. {
  3.     int i;
  4.     int v[5];
  5.     aleatorio(); //De aquí sale el rand();
  6.     for (i=0;i<3;i++)
  7.     {
  8.         if (vector[0]==v[i])
  9.         {
  10.             printf ("%s \n", mensaje1);  
  11.         } else if (vector[1]==v[i])
  12.         {
  13.             printf ("%s \n", mensaje2);
  14.         } else
  15.         {
  16.             printf ("%s \n", mensaje3);
  17.         }
  18.     }
  19. }

Saludos
  #5 (permalink)  
Antiguo 04/05/2009, 12:58
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Misma estructura diferentes mensajes para printf

Cita:
Iniciado por fradve Ver Mensaje
Puedes hacer que a mas del vector, se reciba como parametro en la funcion tres arreglos de char que serían los mensajes correspondientes para cada condición, así por ejemplo:

Código c++:
Ver original
  1. void imp_dieta(int* vector, char mensaje1[],char mensaje2[],char mensaje3[])
  2. {
  3.     int i;
  4.     int v[5];
  5.     aleatorio(); //De aquí sale el rand();
  6.     for (i=0;i<3;i++)
  7.     {
  8.         if (vector[0]==v[i])
  9.         {
  10.             printf ("%s \n", mensaje1);  
  11.         } else if (vector[1]==v[i])
  12.         {
  13.             printf ("%s \n", mensaje2);
  14.         } else
  15.         {
  16.             printf ("%s \n", mensaje3);
  17.         }
  18.     }
  19. }
ok, y por ejemplo si las cadenas de texto son muy largas no habra complicaciones?
porque por ejemplo si los paso como valores o parametros tendría que ponerlas en la función de este modo no?

Código c++:
Ver original
  1. imp_dieta(bjo, "hola todo el mundo esta es una etiqueta", "esta es una segunda etiqueta y muchas mas", "esto es otra etiqueta igual de grande..."); //asi sobrepasa la linea pero no hay errores?

oye lo puse de ese mismo modo en que me pusiste el ejemplo y lo lanze como esta lo puse
y lo que recibo en la terminal es un ejemplo no?
Código terminal:
Ver original
  1. Se recomienda:
  2. N
  3. G
  4. r

la cosa es que por ejemplo en ninguna de las cadenas de texto que puse tengo una N mayuscula y aún así la imprimio pero lo que me extraña más es que me imprime un solo caracter y no sé porque algun consejo?

Última edición por omarin1; 04/05/2009 a las 14:00
  #6 (permalink)  
Antiguo 04/05/2009, 21:26
Avatar de fradve  
Fecha de Ingreso: abril-2009
Mensajes: 157
Antigüedad: 15 años
Puntos: 7
Respuesta: Misma estructura diferentes mensajes para printf

Pues en verdad que es extraño, yo lo hago así por ejemplo cuando quiero combinar varias funciones en una como el gotoxy y el cprintf, creo el método, que recibe una cadena de caracteres de esa manera y funciona correctamente.

Además he probrado el código que escribí aquí y funciona muy bien en turbo c++.

Por cualquier cosa prueba presentando el mensaje con el cout (aunque no creo que sea eso, pero nada se pierde).


Saludos
  #7 (permalink)  
Antiguo 04/05/2009, 23:39
 
Fecha de Ingreso: marzo-2009
Mensajes: 22
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Misma estructura diferentes mensajes para printf

Cita:
Iniciado por fradve Ver Mensaje
Pues en verdad que es extraño, yo lo hago así por ejemplo cuando quiero combinar varias funciones en una como el gotoxy y el cprintf, creo el método, que recibe una cadena de caracteres de esa manera y funciona correctamente.

Además he probrado el código que escribí aquí y funciona muy bien en turbo c++.

Por cualquier cosa prueba presentando el mensaje con el cout (aunque no creo que sea eso, pero nada se pierde).
cout? turbo c++?
Mmm... ahi tenemos una diferencía jaja yo mis aplicaciones las hago con Geany y las compilo con GNU gcc y las ejecuto en terminal desde GNU/Linux en la distro ubuntu
y estan según yo escritas para C jaja
pero no puedo usar cout según tengo entendido en C o si?
según es unicamente para C++ si mal no me equivoco
y pues en C sabes hacerlo? porque estoy trabajando en C
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:15.