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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 [2] 3 4
11  Programación / Programación C/C++ / algunma mejor idea para la edad? en: 9 Febrero 2012, 20:27 pm
este codigo da la edad aproximada, quisiera si me pueden ayudar a hacer qeu este codigo sea perfecto

agradezco su interes

Código:
bool esbisiesto(int a)
{
bool bisiesto=false;
    if(a%4==0)
       bisiesto=true;
    if((a%100==0) && (a%400!=0))
        bisiesto=false;
return bisiesto;
}

unsigned int CalcularEdad(Fecha birthdate)
{
int AnioActual, AA, MesActual, MM, DiaActual, DD;
int año, Mes, Dia;

int MonthDays[2][12]  = {
//{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
            //{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{31, 28, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
            {31, 29, 30, 31, 30, 31, 31, 31, 30, 31, 30, 31},
};
SYSTEMTIME time;
GetLocalTime(&time);
AA=birthdate.getAnyo();
MM=birthdate.getMes();
DD=birthdate.getDya();
AnioActual=time.wYear;
MesActual=time.wMonth;
DiaActual=time.wDay;
año = AA-AnioActual;
if( MesActual <= MM )
{
Mes = MM - MesActual;
}
else
{
Mes = MM+12-MesActual;
año = año -1;
}
if( DiaActual <= DD )
{
Dia = DD - DiaActual;
}
else
{
Dia=DD+MonthDays[esbisiesto(AA)][MM-1]-DiaActual;
Mes = Mes -1;
}
if( Mes < 0 )
{
año = año - 1;
Mes = 12 + Mes;
}
unsigned int Arreglo=año*-1;
//Result = Format('Años: %.0f, Meses: %.0f, Dias: %.0f', [año, Mes, Dia]);
return Arreglo;
}

el codigo fue sacado de u n codigo de visual basic en google y lo modifique pero necesito hacerlo andar bien :|
12  Programación / Programación C/C++ / matrices con notasion de pnteros en: 1 Diciembre 2011, 19:20 pm
un programa bascico de una matriz quiero hacer por ejemplo de 5x5 pero no con notasion de indice sino con notasion de puntero,

void f_matriz(int m[][5])
{
}

int main()
{
     int m[5][5];
     f_matriz(m);

    return 0;
}


esa funcion de matriz deberia cargar 5 numeros y mostrarlos pero usando no la de indices, como puedo hacer porque nunca probe esta notasion con matrices
13  Programación / Programación C/C++ / duda con macro con if else if else en: 23 Septiembre 2011, 15:08 pm
quiero hacer una macro asi, pero no se como hacerla realmente  :-[

#define FOPEN(a,b)
 
            if(a==1) b=fopen("asd1.dat","ab"); /
            else if(a==2) b=fopen(""asd2.dat,"ab");


el problema es que no se bien las reglas para crear macros asi complejas

necesitaria ayuda  :laugh:

14  Programación / Programación C/C++ / ingreso de texto en GLUT en: 11 Septiembre 2011, 20:14 pm
hola estoy haciendo un programa de loguin pero ahora he decicido pasarlo a GLUT, usando esta libreria de opengl. el primer problema que encontre es el ingreso de texto, porque cuando lo hago desde modo consola uso obviamente cin.getline para el ingreso de nombre de usuario y constraseña, pero en glut solo se como hacer salidas de texto, pero no entradas, es decir como puedo hacer ... muestro algo de lo que tengo hasta ahora es solo ejemplos de codigo de glut, pero lo que necesito no lo tengo, osea el ingreso de texto.
http://www.daniweb.com/software-development/cpp/threads/366395

Código:
void output(int x, int y, char *string)
{
  int len, i;

  glRasterPos2f(x, y);
  len = (int) strlen(string);
  for (i = 0; i < len; i++) {
    glutBitmapCharacter(font, string[i]);
  }
}

Código:

MAX_LEN = 20;
#include <conio.h>
void display(void)
{
  glClear(GL_COLOR_BUFFER_BIT);
  output(0, 24, "Welcome to MyProgram");
  output(100, 100, message);
  output(50, 145, "Ingrese nombre de usuario");

  char password[20];
  int count;
  count = 0;
  do
  {
unsigned char input = getch();
unsigned char* ptr;
if(input == 13)
{
break;
}

output(50, 175, "*");

ptr = &input;
password[count] = *ptr;
count++;

  }while(count < MAX_LEN);

  output(50, 200, "Ingrese contrasenia");
  glutSwapBuffers();
}

como se ve luego de que pide el ingreso del nombre, yo trate de hacer que los caracteres ingresados, se pasen a '*' como son los sistemas de loguin.
pero esto colapsa el programa. alguna idea ?



15  Programación / Programación C/C++ / Re: duda doble puntero char a matriz de char en: 5 Septiembre 2011, 03:32 am
grax
y aparte el memset no anda bien de esta forma

Código:
//	memset(mVector, 0, sizeof(char)*(filas*columnas));//no sirve para la asignacion de memoria anterior!!!!!!!

el memset debe aserse por partes tmb ?

16  Programación / Programación C/C++ / duda doble puntero char a matriz de char en: 4 Septiembre 2011, 19:59 pm
yo se que este tema fue discutido pero todavia no entiendo porque esto que compilamdo bien, no funciona. no se porque el compilador no reconoce mi declaracion

Código:
char **mVector = (char**)malloc(sizeof(char)*(filas*columnas));

como si fuera una matriz, mas bien lo reconoce como un vector de vectores,
pero como creo entonces una matriz de  char dinamicamente?

Código:
int main(int argc, char *argv[])
{
int filas=7;
int columnas=16;
char **mVector = (char**)malloc(sizeof(char)*(filas*columnas));

       //memset(mVector, 0, sizeof(char)*(filas*columnas));
       for(int r=0;r<7;r++)
for(int s=0; s<16;s++)
mVector[r][s]=0;

for(int rr=0;rr<7;rr++)
for(int ss=0; ss<16;ss++)
cout << mVector[rr][ss]<<endl;//ERROR al leer!!!!!!!!


free(mVector);


        system("pause");
return 0;
}


http://foro.elhacker.net/programacion_cc/martiz_de_char_doble_puntero-t333527.0.html
en mi anterior tema me dijeron que debia reservar memoria primero para los vectores supongamos que son 7 en mi caso, y despues sus longitudes osea 16,
pero me confunde esta forma de hacerlo, no hay una mas directa asi como en el codigo mostrado ?


>>

esto fue solucionado asi pero como ya digo, no se porque debe hacerse asi por partes y no todo junto (osea multiplicando filas por columas lo cual da la dimension).
...  :¬¬

Código:

void main()
{
        int filas=7;
int columnas=16;
//char** mVector = (char**)malloc(sizeof(char)*(filas*columnas));
char** mVector = (char**)malloc(sizeof(char*)*(filas*columnas));
for(int read=0;read<filas;read++){
mVector[read] = (char*)malloc(sizeof(char)*columnas);
}

//memset(mVector, 0, sizeof(char)*(filas*columnas));
for(int r=0;r<7;r++)
for(int s=0; s<16;s++)
mVector[r][s]='X';

for(int rr=0;rr<7;rr++)
for(int ss=0; ss<16;ss++)
cout << rr << ":" << ss << "  " << mVector[rr][ss]<<endl;

free(mVector);
system("pause");
}

si alguien fuera amable de decirme porque  :rolleyes:
o por deduccion contraria, que es lo que ahce esto entonces  :huh:

Código:
char** mVector = (char**)malloc(sizeof(char)*(filas*columnas));

porque ami forma de apreciarlo esto calcula la dimension total ...

17  Programación / Programación C/C++ / Re: contraseña disimulada con * en: 24 Agosto 2011, 18:42 pm
rescate este codigo 100% de la libreria standard

Código:

#include <windows.h>
#include <stdio.h>

#include <iostream>
#include <stdexcept>
#include <string>
#include <windows.h>
using namespace std;

string getpassword( const string& prompt = "Enter password> " )
  {
  string result;

  // Set the console mode to no-echo, not-line-buffered input
  DWORD mode, count;
  HANDLE ih = GetStdHandle( STD_INPUT_HANDLE  );
  HANDLE oh = GetStdHandle( STD_OUTPUT_HANDLE );
  if (!GetConsoleMode( ih, &mode ))
    throw runtime_error(
      "getpassword: You must be connected to a console to use this program.\n"
      );
  SetConsoleMode( ih, mode & ~(ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT) );

  // Get the password string
  WriteConsoleA( oh, prompt.c_str(), prompt.length(), &count, NULL );
  char c;
  while (ReadConsoleA( ih, &c, 1, &count, NULL) && (c != '\r') && (c != '\n'))
    {
    if (c == '\b')
      {
      if (result.length())
        {
        WriteConsoleA( oh, "\b \b", 3, &count, NULL );
        result.erase( result.end() -1 );
        }
      }
    else
      {
      WriteConsoleA( oh, "*", 1, &count, NULL );
      result.push_back( c );
      }
    }

  // Restore the console mode
  SetConsoleMode( ih, mode );

  return result;
  }

int main()
  {
  try {

    string password = getpassword( "Enter a test password> " );
    cout << "\nYour password is " << password << endl;

    }
  catch (exception& e)
    {
    cerr << e.what();
    return 1;
    }

  return 0;
  }
18  Programación / ASM / Re: getch propia para no usar getch de conio en: 24 Agosto 2011, 18:39 pm
perdon pero el codigo ese de ms dos es de 16 bits segun dicen en la fuente, pero entiendo que compilandolo con visual studio que es un compilador de 32 bits va a funcionar este codigo?

de hecho asi como esta no funciona porque tira error de memoria, por eso decia ..
en dicho caso , como se hace para que un codigo asi de 16 bits ande en 32 bits
19  Programación / ASM / getch propia para no usar getch de conio en: 22 Agosto 2011, 01:30 am
este es un requerimiento, necesito esta funcion getch andando por favor, la parte principal esta en este lenguage que no entiendo, y encima lo debo estudiar ironicamente para mi uni, parecen 3 lineas pero no se que hacen y no anda, me tira error cuando la trato de usar. alguno puede arreglar esta funcion se lo agracederia

Código:
unsigned char GETCH(void)
{
unsigned char key;

_asm
{

start:
mov ah,0
int 0x16
cmp al,0
je start ; don't process special keys
mov key,al
}

return key;
}

20  Programación / Programación C/C++ / contraseña disimulada con * en: 22 Agosto 2011, 01:23 am
hola q tal, este ejemplo lo saque de google, es sobre algo que estaba haciendo, estaba tratando de ocultar el ingreso de una clave por medio de convertir lo que se teclea en * (osea hasteriscos)
no compila en codeblocks, pero compila en visual studio. lo que necesito que me ayuden es en la parte de _asm porque es una forma de evitar el uso de getch de conio y usar esamblador  :xD
sino corresponde diganme que muevo el tema a el foro de ASM
lo que pasa que tira error en esa parte

Código:
#include <windows.h>
#include <stdio.h>

typedef unsigned char tiny;

tiny GETCH(void);

int main(void)
{
tiny input;
tiny *ptr;
char password[20];
int count;
system("cls"); // too lazy not to cheat here
count = 0;
printf("enter your password: ");
do
{
input = GETCH();
if(input == '\xD') break; // enter pressed?
putc('*', stdout);
ptr = &input;
password[count] = *ptr;
count++;
}while(count < 20);

password[count++] = '\0'; // terminate the string
printf("\nyour password: %s\n", password);

return 0;
}

tiny GETCH(void)
{
tiny key;

_asm
{

start:
mov ah,0
int 0x16
cmp al,0
je start ; don't process special keys
mov key,al
}

return key;
}

Páginas: 1 [2] 3 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines