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 ... 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 [116] 117 118 119 120 121 122 123 124 125
1151  Programación / Programación C/C++ / Re: escribir fichero txt continuamente en: 12 Julio 2013, 10:58 am
Cuando tu estás escribiendo en un archivo, por defecto, el sistema lo trata igual que si fuese un buffer de memoria.

Cuando tu escribes en un buffer de memoria, el sistema crea un puntero que apunta a una posición concreta del buffer, de tal forma que cuando inicias operaciones de lectura o escritura, éstas se realizan a partir de esa posición.

Bueno, también puede darse el caso de que se utilicen dos punteros independientes, uno para la lectura y otro para la escritura.

La posición de éstos punteros, normalmente, se determina de forma relativa con respecto al inicio del buffer.

Con esta información, lo que podrías hacer es lo siguiente:

Lee la posición del puntero para saber si has llegado al final del archivo.

Cuando hayas llegado al final posiciona el puntero de nuevo en el principio del archivo y continúa con tu escritura.

Código
  1. // Posiciona el puntero al inicio del archivo
  2. fseek( &file, 0, SEEK_SET );
  3.  
  4. // Obtiene la posición del puntero
  5. long pos = ftell( &file );
1152  Programación / Programación C/C++ / Re: Operator+ Original. ¿Cómo? en: 12 Julio 2013, 10:03 am
La explicación al por qué de las 4 instrucciones es la siguiente:

Dependiendo de la arquitectura del procesador, no todas las instrucciones pueden acceder a la memoria.

un ejemplo es el caso de las instrucciones de suma, resta, ... Estas instrucciones únicamente pueden operar con los registros del procesador y con valores constantes. Es necesario, por tanto, mover las dos variables a registros del procesador para poder realizar la suma.

La instrucción de suma almacena en ax el resultado de la suma, por lo que después es necesario mover dicho resultado a la variable donde queremos almacenarlo.
1153  Programación / Programación C/C++ / Re: Operator+ Original. ¿Cómo? en: 12 Julio 2013, 10:00 am
pues más o menos sería así

Código
  1. int result = num1 + num2;

Código
  1. mov ax, num1
  2. mov bx, num2
  3. add ax, bx
  4. mov result, ax

1154  Programación / Programación C/C++ / Re: ayuda para eliminar un dato de una agenda, en c en: 12 Julio 2013, 09:41 am
A ver, con la estructura agenda vas a tener una lista enlazada, si lo representamos gráficamente, después de tener varios contactos la estructura sería la siguiente:

agenda ( sig -> ) agenda ( sig -> ) agenda ...

Si lo representamos con números para poder explicarlo mejor quedaría así:

agenda0 ( sig -> ) agenda1 ( sig -> ) agenda2 ...

Esto básicamente quiere decir que tienes un elemento agenda0 cuyo puntero sig apunta al elemento agenda1 y así.

Si quieres eliminar agenda1 tendrías que conseguir que el sig de agenda0 apunte a agenda2 en vez de a agenda1. Y después, como buena práctica, hay que eliminar agenda1 para que no deje lagunas de memoria.

Los pasos serían más o menos estos:

Código
  1. struct agenda* anterior = 0;
  2. struct agenda* actual = princ;
  3.  
  4. while ( actual != 0 )
  5. {
  6.    if ( [actual es el elemento a eliminar] )
  7.    {
  8.      struct agenda* siguiente = actual->sig;
  9.      free( actual );
  10.  
  11.      if ( anterior != 0 )
  12.        anterior->sig = siguiente;
  13.      else
  14.        princ = siguiente; // Estamos borrando el primer elemento de la agenda
  15.  
  16.      if ( siguiente == 0 )
  17.        fin = anterior; // Estamos borrando el último elemento de la agenda.
  18.    }
  19.  
  20.    anterior = actual;
  21.    actual = actual->sig;
  22. }

1155  Programación / Programación C/C++ / Re: AYUDA POR FAVOR :( en: 12 Julio 2013, 09:32 am
te acabas de explicar como un libro cerrado
1156  Programación / Programación C/C++ / Re: Esto es un error o es que lo realice mal?? en: 12 Julio 2013, 09:24 am
es que getchar solo lee un caracter... si tu introduces 1234.56 por teclado, el buffer de entrada va a contener una cadena de caracteres tal que "1234.56"... luego ya es responsabilidad tuya, mediante una función de la librería estándar o mediante una función propia, convertir esa cadena de texto en un número.

Con lo comentado, si tu introduces 1234.56 y sólo pones un getchar, el getchar va a leer un único carácter, el primero que le llegue más concretamente, que será el "1" ( ojo, no un uno numérico, sino el carácter que representa al número 1 ), y dejará en el buffer de entrada el resto, "234.56".
1157  Programación / Programación C/C++ / Re: [Duda] Funciones en: 12 Julio 2013, 09:21 am
Y cual es la diferencia entre hacerlo con paréntesis y sin paréntesis ?
Por lo qué pude ver los qué tienen paréntesis son punteros qué no apuntan hacía ningún otro objeto si no hacía los datos miembros de la clase.

Pues a ver, si tu tienes

Código
  1. class poo
  2. {
  3.  public:
  4.  
  5.    // ...
  6.  
  7.     std::string* Cadena( )
  8.     { return _string; }
  9.  
  10.    // ...
  11.  
  12.  private:
  13.  
  14.    std::string* _string;
  15. }

Y deseas recuperar el puntero a la cadena forzosamente tienes que llamar a la función Cadena. Hacer esa llamada te va a retornar un puntero que puedes usar inmediatamente dentro de la misma instrucción.

Código:
int main( ... )
{
  poo clase;

 // ...

  // Esto ...
  int length = clase.Cadena( )->length( );

  // ... es equivalente a ...
  std::string* cadena = clase.Cadena( );
  int length = cadena->length( );

  // ...
}
1158  Programación / Programación C/C++ / Re: (MiProyecto) Herramientas C++ 1.1 en: 12 Julio 2013, 09:16 am
Sería más conveniente que en vez de crear un hilo con cada versión modificases uno de los que ya tienes creado y si eso, para ponerlo delante... añadas un mensaje de respuesta.

No merece la pena llenar el foro de ***** de forma gratuíta ( no por tu mensaje actual, sino por los que quedan obsoletos ).
1159  Programación / Programación C/C++ / Re: Operator+ Original. ¿Cómo? en: 12 Julio 2013, 09:14 am
Es una función propia del lenguaje. Tu piensa que al final el código fuente que tu escribes se acaba transformando en instrucciones máquina... y cualquier procesador de ordenador tiene instrucciones para ( por ejemplo ) sumar y restar números con signo y sin signo.

Esto quiere decir que no se requiere implementar una función para que sume dos números enteros porque es una funcionalidad que ya viene implementada a más bajo nivel.
1160  Programación / Programación C/C++ / Re: Cual es mejor SDL o Opengl en: 11 Julio 2013, 17:30 pm
http://en.wikipedia.org/wiki/Comparison_of_OpenGL_and_Direct3D

Te pongo el enlace directamente porque coincido con lo que pone.
Páginas: 1 ... 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 [116] 117 118 119 120 121 122 123 124 125
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines