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 - Zodiak98

#41
Verán, quiero empezar a programar sockets pero no tengo ni idea de qué hacer o cómo empezar. He buscado información en internet pero he encuentro código y más código ya hecho, y obviamente no entiendo nada. O sea, no explican línea por línea para qué sirve 'X' cosa o qué hace exactamente. Por eso vengo a pedirles si alguno tiene un libro o algo para empezar desde cero. Porque como dije, no tengo ni idea de cómo empezar.

Se los agradecería un montón. :)
#42
Verán, estoy haciendo un programa que lo que hace es que si escribes cierta cantidad en números, este los traslada a letras, por ejemplo: 16 - "dieciséis".

Por ahora sólo estoy con decenas, ya luego lo haré con números mayores, pero tengo un problema, hay valores que sí funcionan, y otros que no. Por ejemplo, 54, 88, 19, y otros con los que no funcionan. Por ejemplo, 18, 87, 84. Al escribir esos números (y otros varios) me manda a la condición incorrecta y escribe lo que no debería.

Las 2 líneas que están en comentario fueron de una prueba para asegurarme que le estaba pasando el parámetro correcto a la función, y ver qué valor tomaba la variable lAux, que efectivamente en algunos casos, toma el incorrecto, por ejemplo, a veces cuando le paso 7 me devuelve un "seis".

Acá les dejaré el código que llevo:

Código (cpp) [Seleccionar]

#include <iostream>
#include <string.h>

using namespace std;

string lNumero(int i);
void decimas(int num);

int main(void) {

    int num = 0;

    cout << "Escribe un numero: ";
        cin >> num;

    decimas(num);
    cout << endl;

    return 0;
}

void decimas(int num) {
    float aux = (float)num/10;
    num /= 10;
    aux = (aux - num) * 10;

    string lAux = lNumero(aux);
    //cout << lAux << endl;
    //cout << aux << endl;

    switch(num) {
    case 0:
        cout << lAux;
    break;
    case 1:
        switch((int)aux) {
            case 0: cout << "diez"; break;
            case 1: cout << "once"; break;
            case 2: cout << "doce"; break;
            case 3: cout << "trece"; break;
            case 4: cout << "catorce"; break;
            case 5: cout << "quince"; break;
            default: cout << "dieci" << lAux; break;
        }
    break;
    case 2:
        if (aux == 0) cout << "veinte";
        else cout << "veinti" << lAux;
    break;
    case 3:
        if (aux == 0) cout << "treinta";
        else cout << "treinta y " << lAux;
    break;
    case 4:
        if (aux == 0) cout << "cuarenta";
        else cout << "cuarenta y " << lAux;
    break;
    case 5:
        if (aux == 0) cout << "cincuenta";
        else cout << "cincuenta y " << lAux;
    break;
    case 6:
        if (aux == 0) cout << "sesenta";
        else cout << "sesenta y " << lAux;
    break;
    case 7:
        if (aux == 0) cout << "setenta";
        else cout << "setenta y " << lAux;
    break;
    case 8:
        if (aux == 0) cout << "ochenta";
        else cout << "ochenta y " << lAux;
    break;
    case 9:
        if (aux == 0) cout << "noventa";
        else cout << "noventa y " << lAux;
    break;
    }
}

string lNumero(int i) {
    switch(i) {
    case 1: return "uno";
    case 2: return "dos";
    case 3: return "tres";
    case 4: return "cuatro";
    case 5: return "cinco";
    case 6: return "seis";
    case 7: return "siete";
    case 8: return "ocho";
    case 9: return "nueve";
    }
    return "cero";
}

#43
Hombre gracias, me he olvidado por completo que en C++ no se pueden comparar cadenas con "==" así no más. Hahah :)
#44
Miren, intento hacer un programa que agarre el segundo argumento que se le pase desde la línea de comandos y luego este imprima un mensaje si es el correcto:
Algo por ejemplo así:

programa.exe argumento.

Luego dentro del programa se comparará si ese argumento es el que está dentro ya establecido o otro, de ser así imprimirá un mensaje en la pantalla.
Pero no sé qué estoy haciendo mal, este es el código que llevo:

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    /*
    cout << "Cantidad de argumentos: " << argc << endl;

    for(int i = 0; i < argc; i++) {
        cout << argv[i] << endl;
    }*/

    //cout << argv[1] << endl;
    if(argv[1] == (char*)"123") {
        cout << "Argumento correcto." << endl;
    }

    cin.get();
    return 0;
}


Gracias de antemano. :D
#45
Cita de: engel lex en 26 Junio 2015, 02:25 AM
solo revisa si cin falló

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(void)
{
     int n;
     cin >> n;
     if(cin.fail()){
          cout << "esto no es un entero" << endl;
          return 0;
     }
     if(n > 10) cout << "Es mayor que 10" << endl;
     else cout << "Es menor a 10" << endl;

     cin.get();
     return 0;
}


Vale, gracias.
#46
Me gustaría saber cómo podría hacer para evitar que los usuarios ingresaran valores que no corresponden al tipo de variable. Por ejemplo, supongamos que tengo un código bastante sencillo como este:

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

int main(void)
{
     int n;
     cin >> n;

     if(n > 10) cout << "Es mayor que 10" << endl;
     else cout << "Es menor a 10" << endl;

     cin.get();
     return 0;
}


Pero, ¿cómo podría hacer para prever una situación donde en lugar de un número introduzca un caracter o una cadena de caracteres y realizar otra acción?

Sé que es algo bastante simple y hasta ridículo, pero igual me gustaría saberlo.

Gracias de antemano. :) 
#47
Programación C/C++ / Re: ¿Cómo detengo un Thread?
27 Diciembre 2014, 17:21 PM
Hehe gracias. :) Utilicé una variable booleana global para reconocer lo que había ingresado por teclado y tomar la decisión del for. Me quedó así:

Código (cpp) [Seleccionar]
#include <iostream>
#include <thread>
#include <Windows.h>

using namespace std;

bool dThread = false;

void firstfor(int* x2)
{
for(int x = 0; x <= 9999; ++x)
{
if(!dThread)
{
*x2 = x;
Sleep(20);
}
else
{
break;
}
}

cout << "\nThis for has finished!" << endl;
}

int main(void)
{
int x = 0;
int y = 1;

thread funcion1(firstfor, &x);

while(1)
{
cout << "Type either '1' or '0': "; cin >> y;

if (y == 0)
{
dThread = true;
break;
}
else if(y == 1)
{
cout << "Currently the 'x' value is: " << x << endl;
Sleep(1000);
}

system("cls");
}

funcion1.join();

system("pause>nul");
return 0;
}
#48
Programación C/C++ / ¿Cómo detengo un Thread?
27 Diciembre 2014, 06:55 AM
Verán, quisiera saber cómo hago para detener la ejecución de un Thread mediante una condición. O sea que, si se cumple dicha condición detener la ejecución de ese Thread.

Tengo un código así:
Código (cpp) [Seleccionar]
#include <iostream>
#include <thread>
#include <Windows.h>

using namespace std;

void firstfor(int* x2)
{
for(int x = 0; x <= 9999; ++x)
{
*x2 = x;
Sleep(20);
}

cout << "\nThis for has finished!" << endl;
}

int main(void)
{
int x = 0;
int y = 1;

thread funcion1(firstfor, &x);

while(1)
{
cout << "Type either '1' or '0': "; cin >> y;

if (y == 0)
{

break;
}
else if(y == 1)
{
cout << "Currently the 'x' value is: " << x << endl;
Sleep(1000);
}

system("cls");
}

cin.get();
return 0;
}


Básicamente el programa te pide que ingreses ya sea el número 0 o 1 para ver qué valor tiene el valor de la variable 'x' actualmente, ya que dicha valor se está aumentado en un proceso diferente. Pero quiero saber cómo hacer para detener ese thread cuando el usuario ingrese el valor 0.
#49
Bueno, es un poco tonto preguntar esto, pero la verdad es que me puse a practicar con las funciones anónimas, y me da un error, tuve dudas así que me puse a practicar con este código simple y me dió el mismo error. ¿Alguien me puede decir qué estoy haciendo mal? Gracias de antemano. :)

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>

using namespace std;

int main(void)
{
    int x = 2;
   
    int (*funcion1)(int) = [x](int a)
    {
        return (a * x);
    };

    cout << funcion1(8) << endl;

    system("pause>null");
    return 0;
}
#50
Hola, bueno es que me he estado preguntando qué pasa exactamente al pasar un parámetro como este:
Código (cpp) [Seleccionar]

MB_ICONINFORMATION | MB_OK


Por ejemplo:
Código (cpp) [Seleccionar]

MessageBox( hwnd, (LPSTR) "Function Not Yet Implemented.",
                              (LPSTR) szClassName,
                              MB_ICONINFORMATION | MB_OK );


¿Qué sucede exactamente? No sé si me logré explicar con exactitud, pero es que he visto muchos códigos fuentes y algunos reciben ese tipo de parámetros; por ende, supe que será de utilidad saberlo con exactitud. Espero respuestas, saludos. :)