Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: main.cpp
- * Author: Christian
- *
- * Created on 20 de mayo de 2015, 9:52
- */
- #include <cstdlib>
- #include <cstdio>
- #include <cstring>
- using namespace std;
- /*
- *
- */
- /*
- double suma(int numDat, ...){
- double *ptD,s = 0;
- ptD = (double*)&numDat;
- ptD = (double*)((int*)ptD + 1);
- for(int i=0; i<numDat;i++){
- s += *ptD;
- ptD++;
- }
- return s;
- }*/
- void procesa(char *cadForm, ...){
- void *pt;
- int *ptI;
- double *ptD;
- char **ptS;
- char *ptC;
- //pt = cadForm Aqui apuntas a la cadena no a la pila
- pt = &cadForm;
- pt = (char**)pt + 1;
- for(int i=0; cadForm[i];i++){
- switch(cadForm[i]){
- case 'd':
- ptI = (int*)pt;
- printf("%10d",*ptI); // o cualquier otra cosa
- pt = (int*)pt+1;
- break;
- case 'f':
- ptD = (double*)pt;
- printf("%10.2lf",*ptD); // o cualquier otra cosa
- pt = (double*)pt+1;
- break;
- case 's':
- ptS = (char**)pt;
- printf("%20s",*ptS);
- pt = (char**)pt +1;
- break;
- case 'c':
- ptC = (char*)pt;
- printf("%4c",*ptC);
- pt = (int*)pt +1;
- break;
- }
- }
- }
- int main(int argc, char** argv) {
- int a= 345, b = 7846, c=783;
- double x = 253.87, y = 843.034;
- char nom[50] = "Juan Lopez", *s;
- char m = 'A', n = 'Z';
- s = new char[50];
- strcpy(s,"Maria Ruiz");
- procesa("ddd",a,b,c);printf("\n");
- procesa("dfdfd",a,x,b,y,c);printf("\n");
- procesa("dfsdfsd",a,x,nom,b,y,s,c);printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement