Como usar o getline() ??? [RESOLVIDO]

1. Como usar o getline() ??? [RESOLVIDO]

Augusto Cadini
tuto

(usa Fedora)

Enviado em 18/09/2012 - 12:01h

Preciso fazer um trabalho de algoritmos, e preciso ler uma linha inteira a partir do teclado ou txt. Mas vou fazer a partir do teclado.
Preciso escrever uma linha onde necessito identificar os caracteres para saber aonde abre e fexa "[]" os colchetes e armazenar algumas strings.
Ex:

Nome [ força1: 2, força2: 10]

Ai tenho q identificar os caracteres e armazenar as entradas.


  


2. Re: Como usar o getline() ??? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/09/2012 - 13:10h

tuto escreveu:

Preciso fazer um trabalho de algoritmos, e preciso ler uma linha inteira a partir do teclado ou txt. Mas vou fazer a partir do teclado.
Preciso escrever uma linha onde necessito identificar os caracteres para saber aonde abre e fexa "[]" os colchetes e armazenar algumas strings.
Ex:

Nome [ força1: 2, força2: 10]

Ai tenho q identificar os caracteres e armazenar as entradas.



Leia a linha ~ tem que haver um padrão
Leia conforme o padrão ~ ex: quando encontrar : a informação a seguir é sobre a quantidade
Armazene os dados




3. Re: Como usar o getline() ??? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/09/2012 - 13:30h

getline() lê a linha inteira para dentro de um buffer, que pode ser um array de char ou std::string. Depois você pode procurar os campos da linha lida com sscanf() (leia sua documentação), ou std::istringstream, ou fazer um parser sob medida com strtok() e strtod() etc.


4. Re: Como usar o getline() ??? [RESOLVIDO]

Augusto Cadini
tuto

(usa Fedora)

Enviado em 18/09/2012 - 13:43h

Obrigado Paulo, o problema eh q não encontrei documentação, nem no man nem no google, somente para c++.


5. Re: Como usar o getline() ??? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/09/2012 - 13:52h

tuto escreveu:

Obrigado Paulo, o problema eh q não encontrei documentação, nem no man nem no google, somente para c++.


http://crasseux.com/books/ctutorial/getline.html


6. Re: Como usar o getline() ??? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/09/2012 - 16:27h

A documentação de std::getline() pode ser encontrada em <http://www.cplusplus.com/>.

Acho que não existe documentação de C++ em forma da manpage. Mas quando eu citei manpage, foi para sscanf(), que é, na minha opinião, uma das mais convenientes formas de fazer parsing de campos em C.


7. Re: Como usar o getline() ??? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/09/2012 - 18:38h

Hummm... Vivendo e aprendendo!

Eu não sabia que a glibc tinha criado uma função getline(), e muito menos que isso tinha ido parar no POSIX. Eu só conhecia a getline() de C++, que parece ter sido a fonte de inspiração para a implementação em C.

Nesse caso, existe, sim, a manpage dela (conforme atestei agora na minha máquina).

Por outro lado, essa função é POSIX, mas não está na biblioteca padrão do C. Se se tiver alguma intenção de levar o programa para um Windows da vida, é possível que não funcione (o novo padrão do C de 2011, ao que me parece, adotou a gets_s() da Microsoft, que eu acho pior do que getline() e fgets()).


8. Re: Como usar o getline() ??? [RESOLVIDO]

Augusto Cadini
tuto

(usa Fedora)

Enviado em 18/09/2012 - 19:15h

Como disparo comando para ver a man dela?
Não consigui vizualizar..

estou tentando assim:

man getline
man getline()



9. Re: Como usar o getline() ??? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/09/2012 - 19:29h

Como ela é POSIX, você pode ver on-line em qualquer site de sistemas que implementem POSIX. Como eu gosto das manpages do BSD (que, em geral, são melhores do que as do Linux, embora haja honrosas exceções), eu costumo usar frequentemente http://man.netbsd.org/.

Como você usa ubuntu, tem de instalar o pacote manpages-dev para obter essa manpage.


10. Re: Como usar o getline() ??? [RESOLVIDO]

Augusto Cadini
tuto

(usa Fedora)

Enviado em 18/09/2012 - 23:58h

Obrigado novamente.

Usando este medoto para ler linhas, como posso percorrer caracter a caracter? Para identificar cada string e armazena-las nos devidos lugares.?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts