Ir para conteúdo
Fórum Script Brasil
  • 0

[DUVIDA] fgets / gets no lugar do scanf


GabrielCardelli

Pergunta

Falae galera beleza? to com um problemaço .

Fiz um problema usando struct e utilizei o scanf pra ler e armazenar ... sendo que ele não armazena os nomes com espaço

Uma vez acho que foi o beraldo que disse que utilizando fgets poderia guardar com espaços só que eu não sei como fazer isso tendo em vista que eu to utilizando uma struct..

Olha o codigo:

#include <stdio.h>
#include <stdlib.h>
struct clientes {
       int nome[30];
       int end[30];
       int cidade[30];
       };
       struct clientes cli[30];
       int count;
int main ()
{
    for (count=0; count < 10; count ++ )
    {
        printf (" DIGITE O NOME : " );
        scanf ("%s",&cli[count].nome);
        printf (" DIGITE O ENDEREÇO : ");
        scanf ("%s",&cli[count].end);[size=3]  /* AQUI EU QRIA USAR OUTRA FUNÇÃO PRA ARMAZENAR COM ESPAÇOS */[/size]
        printf (" DIGITE A CIDADE : ");
        scanf ("%s",&cli[count].end);
        
        printf (" \n\n ");
        printf (" %s Cadastrado com Sucesso ",cli[count].nome);
        getche();
        system ("CLS");
        }
    getche();
    return 0;
}

Se alguém poder me ajudar!!

Muito obrigado desde já.

Abraço

Editado por GabrielCardelli
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Arrumei, havia me confundido com gets.

Na verdade, pegue esta função em vez de usar o fgets cru:

char *readstring(char *dest, int num) {
    int i;

    fgets(dest, num, stdin);
    i = strlen(dest);
    if(dest[--i] == '\n')
        dest[i] = '\ 0'; /* RETIRE O ESPAÇO ENTRE A BARRA E O ZERO, NÃO DÁ PARA POSTAR ESSES CARACTERES JUNTOS NO FÓRUM */

    return dest;
}

Chame-a como chamaria a fgets, só que sem o último argumento.

Precisa da string.h.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Durub consegui rodar o programa só que este erro

prevalece alguém pode medar uma luz pôs eu não consigo ver o erro =/

In function 'main';

17 [Warning] passing arg 1 of 'fgets' from incompatible pointer type

alguém ajuda?

Abraço

EDIT

_______________

Eu tentei

fgets(cli[count].end, 30, stdin);

e

gets(cli[count].end);

ambos dão o mesmo erro. =/

abraço

Editado por GabrielCardelli
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...