elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: agenda archivos binarios en: 3 Agosto 2016, 18:46 pm
Código
  1. unsigned long int DNI;
  2.    unsigned long int fnac;
  3.    char apellido[64];
  4.    char nombres[64];

para que hacer un long con el DNI ya de por si solo con int es un numero grande, al igual que en apellido y nombres, a lo sumo no pasan de 20 a 25 caracreres por lo cual 64 es mucho con demasiado y es mas memoria que ocupada tu programa en ejecucion
2  Programación / Programación C/C++ / Re: Necesito ayuda en: 1 Agosto 2016, 03:43 am
quita el punto y coma ";"
Código
  1. void contactos();{ //<<<<<<ACA ME ARROJA EL error    

asi:
Código
  1. void contactos(){
recuerda que arriba antes del main la declaras como prototipo y alli si lleva punto y coma, pero aqui no lleva porque estas desarollando su metodo
3  Programación / Programación C/C++ / Re: Necesito ayuda en: 1 Agosto 2016, 01:03 am
tranquilo todo con calma, mira yo en lo particular no uso el end1 pero esta bien, yo lo corregi asi en mi pc y funciona bien:

Código
  1. gets(busca);
  2.  
  3. for(i=0;i<cont;i++){
  4. if(strcmpi(busca,control[i].nom)==0){
  5. cout<<"\nNombre: "<<control[i].nom<<"\n";
  6. cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
  7. cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
  8. cout<<"Direcci\242n: "<<control[i].dir<<"\n";
  9. cout<<"E-mail: "<<control[i].email<<"\n";
  10. cout<<"Grupo: "<<control[i].grupos<<"\n";
  11. }

y en la otra parte quedaria asi:

Código
  1. cout<<"\nAgenda.\n";
  2.  
  3. for(i=1;i<cont;i++){
  4. cout<<"\n"<<(i)<<".Nombre: "<<control[i].nom<<"\n";
  5. cout<<"Tel\202fono fijo: "<<control[i].t_f<<"\n";
  6. cout<<"Tel\202fono m\242vil: "<<control[i].t_m<<"\n";
  7. cout<<"Direcci\242n: "<<control[i].dir<<"\n";
  8. cout<<"E-mail: "<<control[i].email<<"\n";
  9. cout<<"Grupo: "<<control[i].grupos<<"\n";
  10. }

nota que en el inicio del for coloque i=1 de una vez para evitar el (i+1) que tenias alli y simplemente dejar i, es decir, simplificar tantas operaciones.

PD: elimina la libreria stdio.h ya que no estas haciendo uso de ella
4  Programación / Programación C/C++ / Re: Necesito ayuda en: 31 Julio 2016, 21:38 pm
Código
  1. for(i=0;i<cont;i++){
  2. if(strcmpi(busca,control[i].nom)==0){
  3. cout<<"\nNombre: %s\n"<<control[i].nom;
  4. cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
  5. cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
  6. cout<<"Direcci\242n: %s\n"<<control[i].dir;
  7. cout<<"E-mail: %s\n"<<control[i].email;
  8. cout<<"Grupo: %s\n"<<control[i].grupos;
  9. }

por encima veo q estas escribiendo como fuera la libreria stdio osea no hay necesidad del %s y los %d solo eso por encima y los "\n" van despues de los control....

aqui tambien tenes el mismo error
Código
  1. cout<<"\nAgenda.\n";
  2.  
  3. for(i=0;i<cont;i++){
  4. cout<<"\n%d.Nombre: %s\n"<<(i+1)<<control[i].nom;
  5. cout<<"Tel\202fono fijo: %d\n"<<control[i].t_f;
  6. cout<<"Tel\202fono m\242vil: %d\n"<<control[i].t_m;
  7. cout<<"Direcci\242n: %s\n"<<control[i].dir;
  8. cout<<"E-mail: %s\n"<<control[i].email;
  9. cout<<"Grupo: %s\n"<<control[i].grupos;
  10. }
5  Programación / Programación C/C++ / Re: decimal a binario con bitset en: 31 Julio 2016, 21:06 pm
Y bueno, ten en cuenta que es una clase. Funciona, sí, pero no es la forma de asignarle valores. Tiene un constructor al que le puedes enviar el valor inicial.

cual seria el constructor? xq tengo entendido que se llaman igual que clase osea seria algo asi?
Código
  1. bitset.bitset(argumento);
6  Programación / ASM / Re: IDE para ASM con interfaces en: 29 Julio 2016, 22:49 pm
prueba EasyCode

easycode.cat/Spanish/index.htm
7  Programación / Programación C/C++ / Re: Imprimir usando la API Windows en: 29 Julio 2016, 21:57 pm
Los lenguajes como C y C++ no definen una forma estandar de imprimir.

La razon es simple: el trabajo de impresion es una tarea específica de la plataforma, lo que implica:

No hay una forma estandar de imprimir en C/C++

Se debe usar alguna caracteristica especifica de la plataforma (como codigo no portable) y/o del compilador para imprimir algo.

Por ejemplo en Turbo C++ se puede usar stdprn para hacer referencia a la impresora e imprimir algo, tal como sigue:

Código
  1. fprintf(stdprn, "Hola mundo...\n");
  2.  
  3.  
  4. int num = 50;
  5. fprintf(stdprn, "Valor del numero: %d\n", num);



Otra forma es funcionalmente similar a trabajar con archivos, pero en lugar de abrir un archivo del disco duro, haremos referencia a la impresora con uno de los siguiente valores:

Código
  1. LPT1:
  2. PRN
  3. LPT2:

Por ejemplo en Dev-C++ podemos usar:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std ;
  4.  
  5. int main()
  6. {
  7. // Identifica el puerto de la impresora
  8. char const * const pszPrinterName = "LPT1:" ;
  9.  
  10. // Abre el flujo de la impresora
  11. ofstream prn( pszPrinterName );
  12.  
  13. // Asegura que la impresora se abrio exitosamente
  14. if ( ! prn ) {
  15. cerr << "ERROR: No se puede abrir " << pszPrinterName << '\n' ;
  16. return 1 ;
  17. }
  18.  
  19. // Imprime un mensaje
  20. prn << "Hola mundo!" ;
  21.  
  22. prn << '\r' // Retorno de carro (ENTER)
  23. << '\f' ; // Expulsa la ultima hoja de la impresora
  24.  
  25. // Cierra la impresora
  26. prn.close();
  27.  
  28. return 0;
  29. }



El siguiente código me resulto, ya que es lo que buscaba.


Impresión usando al API de Windows

Si estamos trabajando con Windows, la mejor forma es usar la API, con esto logramos que sea el propio Windows, quien se encargue de ciertas tareas.

Por ejemplo, con el siguiente código podemos imprimir un archivo de texto. Se mostrará el clásico cuadro de diálogo de impresión de Windows y podemos entonces seleccionar cualquier impresora, ya sea conectada al puerto paralelo, USB o de red:


Código
  1. //Ejemplo que muestra como imprimir un archivo de texto plano.
  2. #include <windows.h>
  3. #include <fstream>
  4. #include <string>
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. typedef std::basic_ifstream<TCHAR> tifstream;
  10. typedef std::basic_string<TCHAR> tstring;
  11.  
  12. void Outtextxy(HDC hdc,int x,int y,tstring Msg)
  13. {
  14. TextOut(hdc,x,y,Msg.c_str(),static_cast<int>(Msg.l ength()));
  15. }
  16.  
  17. void ShowError(tstring strMsg)
  18. {
  19. MessageBox (NULL,strMsg.c_str(),TEXT("Imprimir"),MB_ICONERROR );
  20. exit(1);
  21. }
  22. void ShowInformation(tstring strText)
  23. {
  24. MessageBox (NULL,strText.c_str(),TEXT("Imprimir"),MB_ICONINFO RMATION);
  25. }
  26. void PrintFile(tifstream& f)
  27. {
  28. PRINTDLG pd;
  29. DOCINFO di;
  30. tstring strLine;
  31. int y=300;
  32.  
  33. memset (&pd, 0, sizeof(PRINTDLG));
  34. memset (&di, 0, sizeof(DOCINFO));
  35.  
  36. di.cbSize = sizeof(DOCINFO);
  37. di.lpszDocName = TEXT("Imprimiendo");
  38.  
  39. pd.lStructSize = sizeof(PRINTDLG);
  40. pd.Flags = PD_PAGENUMS | PD_RETURNDC;
  41. pd.nFromPage = 1;
  42. pd.nToPage = 1;
  43. pd.nMinPage = 1;
  44. pd.nMaxPage = 0xFFFF;
  45.  
  46.  
  47. if(f.fail())
  48. ShowError(TEXT("Error el archivo no se pudo abrir para lectura"));
  49.  
  50. if (PrintDlg (&pd)){
  51. if (pd.hDC){
  52. if (StartDoc (pd.hDC, &di) != SP_ERROR){
  53. cout << "Imprimiendo...\nEspere un momento" << endl;
  54. StartPage (pd.hDC);
  55. while(!f.eof()){
  56. getline(f,strLine);
  57. Outtextxy(pd.hDC,500,y,strLine.c_str());
  58. y+=100;
  59. }
  60. EndPage (pd.hDC);
  61. EndDoc (pd.hDC);
  62.  
  63. }
  64. else
  65. ShowError(TEXT("Error: No se pudo comenzar a imprimir."));
  66.  
  67. }
  68. else
  69. ShowError(TEXT("Error: No se pudo crear el contexto de dispositivo"));
  70.  
  71. }
  72. else
  73. ShowInformation(TEXT("Se cancelo la impresion"));
  74.  
  75. ShowInformation(TEXT("Termino la impresion correctamente."));
  76. }
  77.  
  78. int main(int argc,char *argv[])
  79. {
  80.  
  81. tifstream in(TEXT("texto.txt")); /* acá va escrito el nombre del archivo que quieres imprimir */
  82. PrintFile(in);
  83. in.close();
  84. return 0;
  85. }
  86.  


Para que funcione el ejemplo debemos tener un archivo llamado texto.txt en el mismo directorio del programa ejecutable.

Si trabajamos con Dev-C++, debemos ir a Project -> Project Options -> Parameters, y en el cuadro Linker agregamos las siguientes líneas en caso de no tenerlas:

Código
  1. -lgdi32
  2. -lcomdlg32



En particular yo trabajo con Dev-C++.
8  Programación / Programación C/C++ / decimal a binario con bitset en: 29 Julio 2016, 07:44 am
me encontraba viendo que existen métodos de convertir de decimal a binario mediante recursividad y otros, pero revisando tanto las librerías pensé que debería existir algo que trabajara a bajo nivel y conseguí la librería bitset, tiene una serie de métodos interesantes y que resultaran muy útiles, este code es solo un ejemplo básico, se que podría adaptar para poder manejar double.
Código
  1. /*
  2. Name: decimal a binario menores o iguales a 32bits
  3. Copyright: jorge diaz
  4. Author: jorge diaz
  5. Date: 29/07/16 01:20
  6. Description: se puede mejorar, por ahora solo pruebo los recursos de la librería
  7. */
  8.  
  9. #include <bitset>
  10. int main()
  11. {
  12. std::bitset <0x20> _;
  13. scanf("%d",&_);
  14. std::string __ = _.to_string();
  15. const char *p=__.c_str();
  16. for(register short _=0x0;_<=0x20;_++)
  17. {
  18. if(_%0x4==0x0)
  19. {
  20. printf(" ");
  21. }
  22. printf("%c",*p);
  23. *p++;
  24. }
  25. return 0;
  26. }
  27.  
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines