Advertisement
Guest User

Untitled

a guest
May 28th, 2015
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. /*
  2. * File: main.cpp
  3. * Author: Christian
  4. *
  5. * Created on 20 de mayo de 2015, 9:52
  6. */
  7.  
  8. #include <cstdlib>
  9. #include <cstdio>
  10. #include <cstring>
  11.  
  12. using namespace std;
  13.  
  14. /*
  15. *
  16. */
  17. /*
  18. double suma(int numDat, ...){
  19. double *ptD,s = 0;
  20.  
  21. ptD = (double*)&numDat;
  22. ptD = (double*)((int*)ptD + 1);
  23. for(int i=0; i<numDat;i++){
  24. s += *ptD;
  25. ptD++;
  26. }
  27. return s;
  28. }*/
  29.  
  30. void procesa(char *cadForm, ...){
  31. void *pt;
  32. int *ptI;
  33. double *ptD;
  34. char **ptS;
  35. char *ptC;
  36. //pt = cadForm Aqui apuntas a la cadena no a la pila
  37. pt = &cadForm;
  38. pt = (char**)pt + 1;
  39. for(int i=0; cadForm[i];i++){
  40. switch(cadForm[i]){
  41. case 'd':
  42. ptI = (int*)pt;
  43. printf("%10d",*ptI); // o cualquier otra cosa
  44. pt = (int*)pt+1;
  45. break;
  46. case 'f':
  47. ptD = (double*)pt;
  48. printf("%10.2lf",*ptD); // o cualquier otra cosa
  49. pt = (double*)pt+1;
  50. break;
  51. case 's':
  52. ptS = (char**)pt;
  53. printf("%20s",*ptS);
  54. pt = (char**)pt +1;
  55. break;
  56. case 'c':
  57. ptC = (char*)pt;
  58. printf("%4c",*ptC);
  59. pt = (int*)pt +1;
  60. break;
  61. }
  62.  
  63. }
  64. }
  65.  
  66. int main(int argc, char** argv) {
  67. int a= 345, b = 7846, c=783;
  68. double x = 253.87, y = 843.034;
  69. char nom[50] = "Juan Lopez", *s;
  70. char m = 'A', n = 'Z';
  71. s = new char[50];
  72. strcpy(s,"Maria Ruiz");
  73.  
  74. procesa("ddd",a,b,c);printf("\n");
  75. procesa("dfdfd",a,x,b,y,c);printf("\n");
  76. procesa("dfsdfsd",a,x,nom,b,y,s,c);printf("\n");
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement