Argumentos Variables

Iniciado por david_BS, 30 Abril 2012, 19:44 PM

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

david_BS

Hola, en este post voy a mostrar como se puede crear una función tipo 'printf' la cual puede recibir una cantidad de argumentos variables..
Para poder hacer eso se usa el archivo header llamado stdarg.h que trae algunas declaraciones y definiciones para este usar ante esta situación.

La idea fue tomada de un código público por lo tanto no es mi código.. pero si me pareció buena la idea de dar un ejemplo así para tenerlo en cuenta.

Dejo el proyectín para descargarlo
Proyecto en MSVC+++ 6.0


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// UTN FRGP TSP
// 2012
// BS
// Etalking.Com.Ar
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <stdio.h>
#include "stdarg.h" // defines ANSI-style macros for variable argument functions

void PrintString(const char* fmt, ... )
{
va_list va_alist;
char buf[256];
va_start (va_alist, fmt);
_vsnprintf (buf, sizeof(buf), fmt, va_alist);
va_end (va_alist);

printf(buf);
}

int main()
{
char* cadena1 = "\nSola.. Vino a.. mi Ficcion..\0";
char* cadena2 = "\nSin Dudar.. Acompaniarme..\0";
char* cadena_a = "\nCerca.. de su.. Atraccion..\0";
char* cadena_b = "\nTropiezo.. con mis Manos..\0";
int a = 2012;

PrintString("%s%s\n", cadena1,cadena2);

PrintString("\n");

PrintString("%s%s\n", cadena_a,cadena_b);

PrintString("\n");

PrintString("%d\n", a);

PrintString("\n");

PrintString("Presione ENTER para Salir");

while(getchar() != '\n');
return 0;
}


S2