Pular para o conteúdo

Como pegar o nome do usuário em C? [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Como pegar o nome do usuário em C? [RESOLVIDO]

Enviado em 11/07/2018 - 23:27h

Pessoa, como eu pego o nome do usuario em c sem saber o tamanho dele? Exemplo, como posso definir uma variável sem saber o tamanho do nome, pq o nome pode ser ana como pode ser o nome de dom pedro II ( Pedro de Alcântara João Carlos Leopoldo Salvador Bibiano Francisco Xavier de Paula Leocádio Miguel Gabriel Rafael Gonzaga ), devo usar um loop de controle? algo como while ( getchar() != '\n'), como usar esse loop? ou se não for dessa maneira como faço?

Desde já obrigado.

Responder tópico

2. Re: Como pegar o nome do usuário em C? [RESOLVIDO]

Melhor resposta

Enviado em 12/07/2018 - 13:18h

Se for num sistema compatível com POSIX (inclusive o Linux), e você quiser só fazer leitura, use a função getline().

Caso contrário, você terá de usar alocação dinâmica, e ir aumentando o tamanho do vetor até caberem todos os caracteres. Existe um tópico de 2013 em que eu mostro uma implementação disso, e como usá-la. Procure por “my_fgets” na busca do fórum.

3. Re: Como pegar o nome do usuário em C? [RESOLVIDO]

Enviado em 12/07/2018 - 02:31h

BellCoutinho escreveu:

Pessoa, como eu pego o nome do usuario em c sem saber o tamnho dele? Exemplo, como posso definir um variável sem saber o tamanho do nome, pq o nome pode ser ana como pode ser o nome de dom pedro II ( Pedro de Alcântara João Carlos Leopoldo Salvador Bibiano Francisco Xavier de Paula Leocádio Miguel Gabriel Rafael Gonzaga ), devo usar um loop de controle? algo com while ( getchar() != '\n'), como usar esse loop? ou se não for dessa maneira como faço?

Desde já obrigado.
Mesmo nesse caso seria necessário definir um tamanho máximo do vetor. Uma solução possível seria utilizar alocação dinâmica para aumentar o vetor de strings em cada loop.

https://www.ime.usp.br/~pf/algoritmos/aulas/aloca.html

Encontrei um exemplo de código nesse link: https://forum.imasters.com.br/topic/303168-alocar-dinamicamente-mem%C3%B3ria-para-uma-string/

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder