Page 2 of 2

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 11:59 am
by humbertodiaz
Estuve pensando en lo que Jose dijo y sospecho que su problema no tiene que ver con getline() directamente. Jose, podrias poner el codigo que usas para leer datos aqui? Tengo una idea de lo que quizas querias decir cuando decias que estabas leyendo las lineas anteriores.

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 3:53 pm
by Jose132
@humbertodiaz gracias por invertir un poco de tiempo en esto :D , este es mi código para leer con el getline:

Code: Select all

string s;
getline(cin,s);
y en este problema lo que hago es lo siguiente:

Code: Select all

int t;
cin>>t;
for(int k=1;k<=t;k++){
    string s;
    getline(cin,s);
}

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 4:04 pm
by humbertodiaz
Eso es lo que me imagine. Tu problema es cuando usas cin para leer la cantidad de casos. Esa operacion no elimina el caracter que marca el final de una linea, "\n", o potencialmente los multiples caracteres si todavia no se ha resuelto lo de "\r\n" en algunos ejercicios. Cuando usas getline() por primera vez, se lee el resto de la linea donde estaba la cantidad de casos, y por eso ves que tu programa actua de una manera extraña. Hay varias soluciones. Una seria utilizar cin.ignore() para descartar la linea vacia y "\n". Tambien puedes poner una llamada a getline() que se ignorara, con el mismo proposito que cin.ignore().

Aqui esta un ejemplo:

Code: Select all

int t;
string s;
cin>>t;
getline(cin, s);
for(int k=1;k<=t;k++){
    getline(cin,s);
}

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 4:44 pm
by Jose132
@humbertodiaz gracias por responderme tan rápido, pero quisiera si no te es molestia que me respondieras 3 cosas: :D
1-Dijiste que el problema es por leer la línea con cin; ¿hay alguna otra forma de leer la línea?, ¿cuál? :idea:
2-¿Qué función hace el cin.ignore() y dónde tendría que ponerlo? :idea:
3-¿Si leo como el ejemplo que pones me pincharía bien la lectura? :idea:

PD: @ymondelo20 gracias también por decirme cómo lees, lo implementaré para ver si me trabaja, pero quisiera seguir indagando sobre otras implementaciones del getline(). :D

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 5:44 pm
by Jose132
Estoy obteniendo WA y no sé por qué, lo que hago es básico, este es mi código:

Code: Select all

    ...
¿Qué está mal? :?

I'm getting WA and I don't know why, I do it with a basic algorith, this is my code:

Code: Select all

    ...
What's wrong? :?

Re: 1825 - Creating Passwords I

Posted: Tue Apr 21, 2015 11:35 pm
by ymondelo20
Simplemente asumir algo que no te dicen.

Re: 1825 - Creating Passwords I

Posted: Wed Apr 22, 2015 12:19 am
by Jose132
@ymondelo20 :D :D :D Finalmente optimicé un poco el ejercicio en C# y logré aceptar este y el 1905 que es casi lo mismo, gracias ymondelo20, quizás mañana sea yo el que te pueda ayudar si tienes una duda, quién sabe, pero gracias, en serio. :D :D :D

PD: ahora que quité mi código y no hay forma de que nadie lo vea, ¿pudieras decirme que tenía mal?, porque denegué mi solución y vi entre las soluciones aceptadas en C++ que muchas hacían algo parecido a lo que intentaba yo, y aprendí otra forma de leer la línea entera(scanf("%[^\n]")) :roll:

Re: 1825 - Creating Passwords I

Posted: Tue Jul 14, 2015 12:11 pm
by ymondelo20
"You can safely assume that all elements in the input are separated by a single space, there are no trailing or leading spaces." :D