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

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

Bell Coutinho
BellCoutinho

(usa Fedora)

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.


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

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]

Kevin
kshih96

(usa Fedora)

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/






Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts