Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Hacer dos comprobaciones en un WHILE con funciones

Estas en el tema de Hacer dos comprobaciones en un WHILE con funciones en el foro de C/C++ en Foros del Web. Hola, gracias por guiarme todo este tiempo. Tengo un nuevo problema con mi programa. Mi código: Código: #include <iostream> #include <fstream> // Librería para el ...
  #1 (permalink)  
Antiguo 04/11/2015, 21:38
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Hacer dos comprobaciones en un WHILE con funciones

Hola, gracias por guiarme todo este tiempo.
Tengo un nuevo problema con mi programa.

Mi código:
Código:
#include <iostream>
#include <fstream>  // Librería para el manejo de archivos
#include <string>   // Librería para el manejo de strings
#include <stdlib.h> // Librería para el uso de system("cls");
#include <ctype.h>  // Librería para clasificar y transformar caracteres individuales

using namespace std;

bool ValidarNumeroIngresado(string NumeroLetras);
bool ValidarPalabra(int NumeroLetras, fstream &FicheroPalabras);

int main()
{
    //Declaración de variables
    fstream FicheroPalabras;
    string NumeroLetras, Palabra;

/*  Creamos el fichero con las palabras a adivinar
------------------------------------------------------------------------*/
    cout << "Creando fichero con palabras..." << endl;
    FicheroPalabras.open("palabras.txt", ios::out);
    FicheroPalabras << "baloncesto\n";
    FicheroPalabras << "beisbol\n";
    FicheroPalabras << "futbol\n";
    FicheroPalabras << "golf\n";
    FicheroPalabras << "rugby\n";
    FicheroPalabras << "tenis\n";
    FicheroPalabras << "boxeo\n";
    FicheroPalabras << "sumo\n";
    FicheroPalabras << "judo\n";
    FicheroPalabras << "nascar\n";
    FicheroPalabras << "atletismo\n";
    FicheroPalabras << "caminata\n";
    FicheroPalabras << "ciclismo\n";
    FicheroPalabras << "esgrima\n";
    FicheroPalabras << "natacion\n";
    FicheroPalabras << "polo\n";
    FicheroPalabras << "clavados\n";
    FicheroPalabras << "remo\n";
    FicheroPalabras << "vela\n";
    FicheroPalabras << "ajedrez";
    FicheroPalabras.close();
    cout << "Fichero creado exitosamente..." << endl;

/*  Header del programa
------------------------------------------------------------------------*/
    cout << "\nJuego de El Ahorcado\n--------------------" << endl;
    cout << "Tema: Deportes\n" << endl;

/*  Content del programa
------------------------------------------------------------------------*/
    do
    {
        cout << "N\243mero de letras de la palabra: ";
        getline(cin, NumeroLetras);
    } while(ValidarNumeroIngresado(NumeroLetras) && ValidarPalabra(atoi(NumeroLetras.c_str()), FicheroPalabras));

    return 0;
}

/*  Validar el número ingresado
------------------------------------------------------------------------*/
bool ValidarNumeroIngresado(string NumeroLetras)
{
    /*
        La función "isdigit" revisa que todos los caracteres de la cadena sean números.
        Esta función perternece a la Librería <ctype.h>.
    */

    if (isdigit(NumeroLetras[0]))
    {
        cout << "\n\tEnhorabuena!, n\243mero v\240lido...\n" << endl;
        return false;
    }

    else
    {
        cout << "\n\tError!, n\243mero inv\240lido...\n" << endl;
        return true;
    }
}

/*  Validar que exista una palabra con el número de letras ingresado
------------------------------------------------------------------------*/
bool ValidarPalabra(int NumeroLetras, fstream &FicheroPalabras)
{
    string Palabra;
    bool PalabraEncontrada = true;

    FicheroPalabras.open("palabras.txt", ios::in);

    while (PalabraEncontrada)
    {
        if (FicheroPalabras.eof())
        {
            PalabraEncontrada = false;
            cout << "Error!, no hay palabras de " << NumeroLetras << " letras en el juego..." << endl;
            return true;
        }

        else
        {
            getline(FicheroPalabras, Palabra);

            if (Palabra.size() == NumeroLetras)
            {
                PalabraEncontrada = false;
                cout << "Palabra de " << NumeroLetras << " letras encontrada..." << endl;
                return false;
            }
        }
    }

    FicheroPalabras.close();
}
Debo replicar el juego de EL AHORCADO.

Pasos que hago:
  • Pido el número de letras que debe tener la palabra a adivinar.
  • Con la función "ValidarNumeroIngresado" valido que el dato ingresado sea un número y no cualquier otra cosa.
  • Con la función "ValidarPalabra" valido que exista una palabra con esa cantidad de letras.

Entonces, quiero que el programa siga pidiendo el número de letras siempre y cuando:
  • El dato ingresado no sea un número.
  • Exista una palabra con la cantidad de letras.

Cómo hago esas dos validaciones dentro del WHILE?, no se me ocurre otra cosa y he dado mucha cabeza en este asunto.
Pensé que me iba a funcionar la forma que tengo, pero no funciona.

Alguna ayuda por favor de alguien con experiencia en estos casos?.

Ahora mismo el programa funciona, pero no me muestra los mensajes de que si encontró o no una palabra con esa cantidad de letras (segunda validación en el WHILE), estoy pensando que el programa esta obviando esa parte.

Ayuda por favor :(
  #2 (permalink)  
Antiguo 05/11/2015, 03:10
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por RGT Ver Mensaje
Entonces, quiero que el programa siga pidiendo el número de letras siempre y cuando:
  • El dato ingresado no sea un número.
  • Exista una palabra con la cantidad de letras.

Cómo hago esas dos validaciones dentro del WHILE?, no se me ocurre otra cosa y he dado mucha cabeza en este asunto.
Ahí tienes un problema de razonamiento.

Lo que tu esperas realmente es que el bucle se repita siempre y cuando se cumpla, al menos, una de estas condiciones:
  • El dato ingresado no sea un número
  • NO exista una palabra con la cantidad de letras
Mientras que tu programa repite el bucle siempre y cuando se cumplan estas condiciones:
  • El dato ingresado SI sea un número
  • Exista una palabra con la cantidad de letras
Es decir, el bucle se va a repetir siempre que introduzcas un dato válido...

Con esto deberías ser capaz de arreglar tu problemilla con el programa.

Por cierto, no tiene demasiado sentido que la función ValidarPalabra reciba un ifstream. Básicamente porque no aprovecha la información que dicho ifstream pueda tener.... básicamente lo utilizas para abrir un fichero, leerlo y cerrarlo de nuevo.

Si la función esperase que el fichero estuviese ya abierto entonces sí tendría sentido que recibiese el stream como parámetro, ya que así podrías usar la misma función con diferentes ficheros... pero con el código actual te puedes ahorrar ese parámetro y declarar el stream dentro de la función.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #3 (permalink)  
Antiguo 05/11/2015, 08:44
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Pregunta Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por eferion Ver Mensaje
Ahí tienes un problema de razonamiento.

Lo que tu esperas realmente es que el bucle se repita siempre y cuando se cumpla, al menos, una de estas condiciones:
  • El dato ingresado no sea un número
  • NO exista una palabra con la cantidad de letras
Mientras que tu programa repite el bucle siempre y cuando se cumplan estas condiciones:
  • El dato ingresado SI sea un número
  • Exista una palabra con la cantidad de letras
Es decir, el bucle se va a repetir siempre que introduzcas un dato válido...

Con esto deberías ser capaz de arreglar tu problemilla con el programa.

Por cierto, no tiene demasiado sentido que la función ValidarPalabra reciba un ifstream. Básicamente porque no aprovecha la información que dicho ifstream pueda tener.... básicamente lo utilizas para abrir un fichero, leerlo y cerrarlo de nuevo.

Si la función esperase que el fichero estuviese ya abierto entonces sí tendría sentido que recibiese el stream como parámetro, ya que así podrías usar la misma función con diferentes ficheros... pero con el código actual te puedes ahorrar ese parámetro y declarar el stream dentro de la función.

Un saludo.
Hola, gracias hermano, resuelto.

Tengo un problemita mas.

Si corre el programa e ingresa:
Nombre: willis
Letras: 3

Le avisará que el número de letras es invalido porque no existen palabras con esa cantidad de letras.

Entonces, en la segunda iteración usted ingresa:
Nombre: willis
Letras: 4

También le notifica el mismo error, aunque si existen palabras de 4 letras.
Por qué?.

Haciendo un DEBUG, encontré esto:

Código:
bool ValidarPalabra(int NumeroLetras, fstream &FicheroPalabras)
{
    string Palabra;
    bool PalabraEncontrada = true;
    FicheroPalabras.open("palabras.txt", ios::in);
    while (PalabraEncontrada)
    {
        if (FicheroPalabras.eof())
        {
            PalabraEncontrada = false;
            cout << "\tError!, no hay palabras de " << NumeroLetras << " letras en el juego...\n" << endl;
            return true;
        }
        else
        {
            getline(FicheroPalabras, Palabra);
            if (Palabra.size() == NumeroLetras)
            {
                PalabraEncontrada = false;
                cout << "\tEnhorabuena!, palabra de " << NumeroLetras << " letras encontrada..." << endl;
                return false;
            }
        }
    }
    FicheroPalabras.close();
}
El programa siempre entra en el primer IF y por esa razón siempre retorna que no existen palabras con esa cantidad de letras.
Será porque se esta abriendo por segunda vez el fichero?, la verdad no se la razón.
Espero pueda ayudarme.
  #4 (permalink)  
Antiguo 05/11/2015, 09:20
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Con respecto al código que has puesto, varias cosas:

No es congruente

Si se supone que el programa tiene que encontrar una palabra... por qué incializas el booleano PalabraEncontrada a true? Se supone que al inicio del algoritmo no has encontrado la palabra, por lo que lo lógico sería que esta variable valiese false. ¿Por qué matizo esto? Porque el código tiene que ser lo más intuitivo posible a fin de reducir el número de errores... al primer vistazo se entiende que la función ha encontrado una palabra nada más empezar!!!

Ojo con los return (I)

Una función que retorna un valor ha de tener, al menos, un return como última línea del código... en tu caso eso no se cumple, por lo que... ¿Qué sucede si PalabraEncontrada pasa a valer false y se sale del bucle? ¿Qué valor se devuelve entonces?

Ojo con los return (II)

Si en los dos sitios donde PalabraEncontrada pasa a valer false pones un return... ¿Cuándo se cierra el fichero? ¿Qué pasa si un fichero que no se cierra se intenta abrir otra vez? ¿para qué tienes while(PalabraEncontrada)... si no dejas que en esa línea la variable pueda valer false?

No pinta demasiado bien, verdad?

Ámbito de las variables

Como te comenté, el stream únicamente tiene sentido que lo pases como parámetro si el fichero ya viene abierto al llamar a la función... y por supuesto si la función tampoco se encarga de cerrarlo. Para abrir y cerrar el archivo dentro de la función es preferible que el stream pase a ser una variable local.

Además, si únicamente vas a utilizar el stream para leer un fichero, intenta usar la clase mínima que cumpla con tus requisitos... en este caso ifstream. ¿Por qué recurrir a los mínimos? para lavarte los dientes usas un tunel de lavado o te conformas con un cepillo de dientes?? pues eso.

stream.eof()

Este método no se actualiza así por las buenas... se actualiza SIEMPRE después de una lectura, por lo que no tiene demasiado sentido que lo estés comprobando al principio del bucle.

A lo anterior... ¿Qué pasa con eof() si se intenta abrir el mismo archivo por segunda vez sin haberlo cerrado previamente?

Al final, como ves, todo está relacionado. Por eso hay que ser tan cuidadoso y pulcro a la hora de escribir el código.

Tambíen podías probar a escribir pseudocódigo y después llevar eso a código fuente... es otra forma de escribir un programa coherente.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #5 (permalink)  
Antiguo 05/11/2015, 09:37
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Hola hermano. Te voy respondiendo algunas cosas mientras voy leyendo.

1. PalabraEncontrada. Utilizo esto para salir del bucle WHILE. Lo inicializo en true para que se mantenga iterando hasta que la variable se convierta false. Notar que se convierte a false cuando entra en el IF o en el ELSE.

2. Ojo con los return (I). No habia pensado eso hasta ahora. A mi pensar, debe cumplirse el IF o el ELSE en algun momento del codigo. Recuerdo que en un inicio utilize la funcion ".eof()" para eso mismo. Si llege al final del fichero, hacer esto... O sea, no veo necesidad de poner un return al final..... almenos no en mi caso, creo yo.... soy nuevo en esto.

Lo demas, tienes razon. lo arreglo.
  #6 (permalink)  
Antiguo 05/11/2015, 09:47
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por RGT Ver Mensaje
1. PalabraEncontrada. Utilizo esto para salir del bucle WHILE. Lo inicializo en true para que se mantenga iterando hasta que la variable se convierta false. Notar que se convierte a false cuando entra en el IF o en el ELSE.
y no te vale algo tal que:

Código C++:
Ver original
  1. bool PalabraEncontrada = false;
  2. while( !PalabraEncontrada )
  3. {
  4. }

No se, pero a mi me un código más lógico.

En cuanto a lo del false...

Código C++:
Ver original
  1. while (PalabraEncontrada)
  2.     {
  3.         if (FicheroPalabras.eof())
  4.         {
  5.             PalabraEncontrada = false;
  6.             return true;
  7.         }
  8.         else
  9.         {
  10.             if (Palabra.size() == NumeroLetras)
  11.             {
  12.                 PalabraEncontrada = false;
  13.                 return false;
  14.             }
  15.         }
  16.     }

No se tú, pero yo veo que cuando pones PalabraEncontrada a false después haces un return, por lo que el while nunca evalua false... en consecuencia no se ejecuta el close del fichero, ya que para que esto suceda antes tienes que salir del bucle...

Cita:
Iniciado por RGT Ver Mensaje
2. Ojo con los return (I). No habia pensado eso hasta ahora. A mi pensar, debe cumplirse el IF o el ELSE en algun momento del codigo. Recuerdo que en un inicio utilize la funcion ".eof()" para eso mismo. Si llege al final del fichero, hacer esto... O sea, no veo necesidad de poner un return al final..... almenos no en mi caso, creo yo.... soy nuevo en esto.
Ser nuevo no puede ser la excusa eterna. Si quieres un consejo, busca manuales de C++ (libro, ebook, manual de internet) y empieza a estudiarlo como si tu existencia dependiese de ello... tener tantas dificultades para realizar este programa evidencia que no tienes una base mínima, y sin esa base no vas a poder avanzar lo más mínimo por mucho que te esfuerces... y al final lo acabarás dejando por un imposible.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #7 (permalink)  
Antiguo 05/11/2015, 10:01
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Hola,
Tienes razon en lo que dice, me refiero a ser nuevo con ficheros, el profesor nos asigno una tarea este pasado Lunes y no mostro como hacer nada, todo esto aprendido ha sido leyendo y gracias a ustedes.

Me costara comprar un libro por internet ahaha.

Te explico algo para que me digas si yo estoy en lo incorrecto.

Código:
while (PalabraEncontrada)
    {
        if (FicheroPalabras.eof())
        {
            PalabraEncontrada = false;

//Si llego al final del archivo, cambiar estado de esta variable para salir del while. Solamente para salir del while, nada mas.

            return true;

//Con esto me refiero a que la funcion devolverá true, no devolverá nada al while local. Es decir, el valor retornado o el estado retornado, irá al while que estoy usando al comienzo del programa, el while que llama esta funcion.
        }
        else
        {
            if (Palabra.size() == NumeroLetras)
            {
                PalabraEncontrada = false;  // lo mismo aqui
                return false;     // lo mismo aqui
            }
        }
    }
Luego que se termina el WHILE, entonces seguiran las siguientes lineas, digase cerrar el fichero y demas.

No es así, estoy mal?.

Me sirve mucho tu ayuda hermano, te comento que cada cosa que me dices lo analizo y de ser necesario investigo mas en google.
  #8 (permalink)  
Antiguo 05/11/2015, 10:06
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Si pones un return ahi... automáticamente saldrás del bucle, sí, pero también de la función...

Esto ya no tiene nada que ver con ficheros, en serio, si fuese que te lias con las lecturas todavía... pero es que te estás liando con la estructura básica del programa.

Tan complicado es tener algo tal que?

Código C++:
Ver original
  1. bool PalabraEncontrada = false;
  2. while (!PalabraEncontrada && !FicheroPalabras.eof())
  3. {
  4.   getline(FicheroPalabras, Palabra);
  5.   if (Palabra.size() == NumeroLetras)
  6.     PalabraEncontrada = true;
  7. }
  8. FicheroPalabras.close();
  9. return PalabraEncontrada;

Y, por supuesto, nada de mensajes a la consola desde esta función. La función o se encarga de buscar una palabra o se encarga de avisar al usuario... NUNCA se ha de encargar de dos cosas tan diferentes.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #9 (permalink)  
Antiguo 05/11/2015, 10:19
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Hola, entiendo, gracias hermano.

Una cosa mas, por qué entonces cuando hago un DEBUG, puedo ver perfectamente como el programa lee cada linea?. No debería ser que al llegar a los return, salga de la función.

Vale que aprendo mucho contigo, gracias..
  #10 (permalink)  
Antiguo 05/11/2015, 10:38
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por RGT Ver Mensaje
Hola, entiendo, gracias hermano.

Una cosa mas, por qué entonces cuando hago un DEBUG, puedo ver perfectamente como el programa lee cada linea?. No debería ser que al llegar a los return, salga de la función.

Vale que aprendo mucho contigo, gracias..
Lee hasta que llegas al return... en ese momento verás que el programa abandona la función.

Prueba a poner un punto de parada en la línea que cierra el fichero y verás que el programa no la ejecuta nunca.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.
  #11 (permalink)  
Antiguo 05/11/2015, 10:45
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por eferion Ver Mensaje
Lee hasta que llegas al return... en ese momento verás que el programa abandona la función.

Prueba a poner un punto de parada en la línea que cierra el fichero y verás que el programa no la ejecuta nunca.

Un saludo.
Vale, tienes razon, muchas gracias hermano por todo, de verdad. Se te agradece la ayuda, es dificil encontrar alguien que te explique las cosas.
  #12 (permalink)  
Antiguo 05/11/2015, 14:02
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Te doy un consejo que me dieron a mi hace mucho. "Un return por funcion". Nada de 20 return repartidos por toda la función. Pon un return al final y que retorne el valor de una variable y lo que tienes que modificar es el valor de esa variable en los sitios deseados. Muchos return hace que el código cueste más interpretarlo y que tengas fallos como lo que por ejemplo te pasa en el tuyo, que sales con un return y no cierras el fichero por ejemplo.
Si miras en los códigos de ejemplo de la msdn veras que usan muchos return pero que ibas a esperar de Microsoft jajaja.
  #13 (permalink)  
Antiguo 06/11/2015, 01:50
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: Hacer dos comprobaciones en un WHILE con funciones

Cita:
Iniciado por aguml Ver Mensaje
Te doy un consejo que me dieron a mi hace mucho. "Un return por funcion". Nada de 20 return repartidos por toda la función. Pon un return al final y que retorne el valor de una variable y lo que tienes que modificar es el valor de esa variable en los sitios deseados. Muchos return hace que el código cueste más interpretarlo y que tengas fallos como lo que por ejemplo te pasa en el tuyo, que sales con un return y no cierras el fichero por ejemplo.
Si miras en los códigos de ejemplo de la msdn veras que usan muchos return pero que ibas a esperar de Microsoft jajaja.
Como norma general lo secundo, pero únicamente como norma general.

Si se da el caso que con varios return se mejora la legibilidad del código entonces habría que considerar esa vía.

Opción A:
Código C:
Ver original
  1. void func()
  2. {
  3.   if( condicion1 )
  4.   {
  5.     // algunas operaciones
  6.  
  7.     if( condicion2 )
  8.     {
  9.       // algunas operaciones
  10.  
  11.       if( condicion3 )
  12.       {
  13.         // algunas operaciones
  14.  
  15.         if( condicion4 )
  16.         {
  17.           // algunas operaciones
  18.         }
  19.       }
  20.     }
  21.   }
  22. }

Opción B:
Código C:
Ver original
  1. void func()
  2. {
  3.   if( !condicion1 )
  4.     return;
  5.  
  6.   // algunas operaciones
  7.  
  8.   if( !condicion2 )
  9.     return;
  10.  
  11.   // algunas operaciones
  12.  
  13.   if( !condicion3 )
  14.     return;
  15.  
  16.   // algunas operaciones
  17.  
  18.   if( !condicion4 )
  19.     return;
  20.  
  21.   // algunas operaciones
  22. }

Quizás así no se aprecia bien... pero si sustituyes "algunas operaciones" por código real, con sus propios condicionales, bucles y demás parafernalia se ve mejor... y si encima estás en una empresa en la que limitan el tamaño de la línea a 80 caracteres, por ejemplo, ni te cuento.

Al final yo creo que la mejor solución depende de cada caso en concreto, pero es mi opinión al fin y al cabo.

Un saludo
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.

Etiquetas: cadena, funcion, funciones, int, numero, programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:50.