Título: ayuda programa!! Publicado por: rodrigo_103 en 16 Septiembre 2012, 20:28 pm hola!!
estoy haciendo un programa y por mas que llevo horas dandole vueltas no encuentro el problema. necesito ayuda! la idea es que reciba un texto como el que sigue y lo divida en vectores, uno por cada linea r0001023, PÉREZ Juan, Física, 8 s25418-2, DOMÍNGUEZ Domingo, Literatura, 9 w0412346, FULANO Fidel, Física, 10 q23411-t, ZUTANO Jose, Geografía, 7 lo ejecuto de la forma ./cortastring<texto.csv y me imprime: 23411-t, ZUTANO Jose, Geografía, 7 lo cual esta bastante bien, pero me falta la "q" que hay antes de todo eso y no entiendo por que no la toma en el vector este es el codigo: Código } Título: Re: ayuda programa!! Publicado por: avesudra en 16 Septiembre 2012, 20:48 pm Buenas rodrigo_103 , me parece que es , por el getchar que tienes en el bucle porque se come siempre la primera letra , ¿no crees que sería mejor esto?
Código Referencia de función fgets (http://www.cplusplus.com/reference/clibrary/cstdio/fgets/) , valores que retorna: Return Value On success, the function returns the same str parameter. If the End-of-File is encountered and no characters have been read, the contents of str remain unchanged and a null pointer is returned. If an error occurs, a null pointer is returned. Use either ferror or feof to check whether an error happened or the End-of-File was reached. ¡Un saludo y bienvenido al foro! Título: Re: ayuda programa!! Publicado por: rodrigo_103 en 16 Septiembre 2012, 21:28 pm Muchas gracias por tu rapida y completa respuesta y la bienvenida.
ya no tengo ese problema con las letras iniciales, pero ahora, cuando imprimo un vector, por ejemplo el 0, me imprime el que corresponderia que fuera el vector 1, si pido el 1, me imprime el 3, si pido el 2 me imprime el 5, si pido el 3 el 7 y asi sucesivamente. en el caso del codigo que sigue imprime: q23411-t, ZUTANO Jose, Geografía, 7 Código
Título: Re: ayuda programa!! Publicado por: avesudra en 16 Septiembre 2012, 21:52 pm Es que has puesto dos fgets , con el que está en el bucle puesto ya basta. Si retorna NULL pues sale del bucle , porque le metes EOF que en windows es Ctrl + Z , pero si nó pones Ctrl + Z , entra al bucle y ejecuta dos fgets , por lo que a la misma variable de i le asignas su siguiente en la lista al ejecutar dos fgets. Pon solamente uno.
Título: Re: ayuda programa!! Publicado por: rodrigo_103 en 16 Septiembre 2012, 21:58 pm ahora funciona perfectamente!! mil gracias! :D
|