Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Beakman

#161
ahh..
Que error te devuelve?

..esto tampoco funciona?

ofstream miScript(nombreScript);
miScript<< descripcionScript;
miScript.close();
#162
Noticias / Re: El español crece en internet
23 Noviembre 2010, 02:50 AM
Es bueno ver que ALGO crecio.
Es una lastima que haya gente que cada vez que hace algo le pone nombres en ingles  :P
Estoy cansado de ver cosas en ingles por todos lados, hay que hacer mas fuerza para que el español se siga expandiendo.
#163
tenes que concatenar la variable
strcat( tituloScript, ".txt" );
y asi hasta tener lo que querés
#164
bueno depende para que SO lo quieras hacer.
Lo del color en linux solo tendrias que hacer algo asi:

cout << "\e[31m"; //rojo
cout << "\e[32m"; //verde
cout << "\e[33m"; //amarillo


En windows seria algo asi:

#include <iostream>
#include <windows.h>
using namepsace std;

int main()
{
const WORD colors[] ={ 0x1A, 0x2B, 0x3C, 0x4D, 0x5E, 0x6F,0xA1, 0xB2, 0xC3, 0xD4, xE5, 0xF6};

HANDLE hstdin  = GetStdHandle( STD_INPUT_HANDLE  );
HANDLE hstdout = GetStdHandle( STD_OUTPUT_HANDLE );
WORD   index   = 0;

CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo( hstdout, &csbi );

SetConsoleTextAttribute( hstdout, 0xEC );
cout << "Presionar tecla.\n";

// Draw pretty colors until the user presses any key
while (WaitForSingleObject( hstdin, 100 ) == WAIT_TIMEOUT)
{
SetConsoleTextAttribute( hstdout, colors[ index ] );
cout << "\t\t\t\t Holaaa \t\t\t\t" << std::endl;
if (++index > sizeof(colors)/sizeof(colors[0]))
index = 0;
}
FlushConsoleInputBuffer( hstdin );

SetConsoleTextAttribute( hstdout, csbi.wAttributes );
return 0;
}

En internet hay mucho.

Lo de las teclas lo mismo.
Usa las APIs o con alguna libreria
#165
Programación C/C++ / Re: promediar
22 Noviembre 2010, 03:58 AM
y a medida que vas recorriendo la lista no podes sumar el numero en una variable?

if(recorrer->dato%2!=0)
{
    i++;
     promedio += recorrer->dato;
    recorrer = recorrer->sig;
}


y al final de todo

     promedio / i;
#166
Buenas, les dejo un codigo que hice en c++.
Es bastante simple pero a alguno que esta empezando le puede servir.
Sirve para ponerle contraseñas a los archivos, suma el codigo ascii del archivo con el de la clave. Y para descifrarlo los resta.

http://www.mediafire.com/?di5q9018ti4t0eb


Código (cpp) [Seleccionar]
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;

void limpiarPantalla()
{
system("clear"); //en windows seria system("cls");
}

//se define una clase
class cifrado
{
private:
char *cadena; //cadena en la que se carga el archivo
long tam; //tamaño del archivo
public:
~cifrado(); //destructor
void leer_de_disco( const char* );
void cifrar( const char* );
void descifrar( const char* );
void grabar_en_disco( const char* );
};

// leer_de_disco:
// abre la direccion del archivo que es pasado por parametro
// y guarda su contenido en la cadena
void cifrado::leer_de_disco(const char* nombre_archivo)
{
FILE *ar1;

//abre el archivo
ar1 = fopen( nombre_archivo,"rb" );
if( !ar1 )exit(1); //si no puede sale

fseek( ar1,0,2 ); //se posiciona al final
tam = ftell( ar1 ); //guarda el numero
fseek( ar1,0,0 ); //se posiciona al principio

//crea un vector del tamaño conseguido
cadena = new char[tam];

//intenta leer los datos, si no puede sale
if( !fread(cadena,tam,1,ar1) )exit(1);

fclose( ar1 ); //cierra el archivo
}

// cifrar:
// suma el codigo ASCII de la cadena con una
// clave que es pasada por parametro
void cifrado::cifrar(const char *clave)
{
int x=0,y=0; //indices de las cadenas

//mientras no sea el fin de la cadena
while( cadena[x]!=0 )
{
cadena[x]+=clave[y]; //suma el codigo ASCII
x++; //pasa a la siguiente posicion

if( clave[y+1]==0 ) //si se llega al final de la cadena
y=0; //comienza de nuevo
else //si no
y++; //sigue incrementando el indice
}
}

// descifrar:
// resta al codigo ASCII de la cadena
// la clave que es pasada por parametro
void cifrado::descifrar(const char *clave)
{
int x=0,y=0; //indices de las cadenas

//mientras no sea el fin de la cadena
while( cadena[x]!=0 )
{
cadena[x]-=clave[y]; //resta el codigo ASCII
x++; //pasa a la siguiente posicion

if( clave[y+1]==0 ) //si se llega al final de la cadena
y=0; //comienza de nuevo
else //si no
y++; //sigue incrementando el indice
}
}

// grabar_en_disco
// abre la direccion que es pasada por parametro
// y guarda el contenio de la cadena
void cifrado::grabar_en_disco( const char *nombre_archivo )
{
FILE *ar1;

//abre el archivo
ar1 = fopen( nombre_archivo,"rb+" );
if( !ar1 )exit(1); //si no puede sale

//intenta escribir los datos, si no puede sale
if( !fwrite(cadena,tam,1,ar1) )exit(1);

fclose( ar1 ); //cierra el archivo
}

cifrado::~cifrado()
{
delete[] cadena; //libera la memoria
}

int main()
{
cifrado archivo; //objeto para manejar el proceso

int opcion; //opcion del menu
char nombre_archivo[30]; //direccion del archivo
char clave_archivo[30]; //clave

do
{
limpiarPantalla(); //limpia pantalla y muestra menu
cout << "1. Seleccionar Archivo" << endl;
cout << "2. Cifrar" << endl;
cout << "3. Descifrar" << endl;
cout << "4. Cerrar programa" << endl;
cout << "Opcion: ";

cin >> opcion; //pide el ingreso de una opcion

clave_archivo[0] = 0; //pone en cero la clave

switch( opcion )
{
case 1:
cout << "Nombre del archivo: ";
cin.ignore();
//se ingresa la direccion del archivo
cin.getline( nombre_archivo,30 );

//si la cadena esta vacia no hace nada
if( nombre_archivo[0]==0 )break;
archivo.leer_de_disco( nombre_archivo );
break;

case 2:
//si la cadena esta vacia no hace nada
if( nombre_archivo[0]==0 )break;
cout << "Ingrese la clave: ";
cin.ignore();
//se ingresa la cable para cifrar
cin.getline( clave_archivo,30 );

//si la clave esta vacia no hace nada
if( clave_archivo[0]==0 )break;
archivo.cifrar( clave_archivo ); //cifra
archivo.grabar_en_disco( nombre_archivo ); //guarda
break;

case 3:
//si la cadena esta vacia no hace nada
if( nombre_archivo[0]==0 )break;
cout << "Ingrese la clave: ";
cin.ignore();
//se ingresa la clave para descifrar
cin.getline( clave_archivo,30 );

//si la clave esta vacia no hace nada
if( clave_archivo[0]==0 )break;
archivo.descifrar( clave_archivo ); //descifra
archivo.grabar_en_disco( nombre_archivo ); //guarda
break;

case 4:
return 0; //sale del programa
break;
}
}while(1);
}


#167
Como te dijeron arriba, ahi tenes un montón de material muy útil.
Creo que el mejor para empezar es el libro de Pozo Coronado ( está en la lista tmb )
http://c.conclase.net/?id=descargas
#168
Programación C/C++ / Re: Puzzle en dev c++
20 Noviembre 2010, 18:41 PM
Bueno, a ver si te puedo ayudar en algo.


for(i=1; i<=3;i++)
   for(j=1;j<=3;j++)
      r[i-1][i-1] = i*j;

No se por que no arrancas i = 0 y j = 0.
Y lo que esta guardando en la matriz resultado es el resultado de la multiplicación de las posiciones no esta guardando la suma del contenido de las matrices.

El código para sumar la matriz seria este:

for(int x=0; x<3;x++)
   for(int y=0;y<3;y++)
      r[x][y] = numsa[x][y] + numsb[x][y];


Trata de no usar la librería conio, eso lo podes hacer perfectamente con librerías estándar.
#169
pone la libreria stdlib.h

Sino usa srand y rand para los numeros aleatorios, es mas confiable.
#170
Programación C/C++ / Re: Ayuda con estructura
20 Noviembre 2010, 06:12 AM
depende lo que quieras hacer con esos datos, si los queres mostrar por pantalla o guardar en un archivo, seria mas fácil declarar una sola estructura y hacer un ciclo, un for de 3, y cargarlos en la misma estructura. y vas devolviendo los datos.