Ir ao conteúdo

Posts recomendados

Postado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct futebol{
    char nome[100];
    int idade;
    int jogos;
    int gols;
}t_futebol;

t_futebol jogador;

int main(){
    strcpy(jogador.nome, "\0");
    jogador.idade = 0;
    jogador.jogos = 0;
    jogador.gols = 0;
    
    printf("O nome do jogador: ");
    scanf("[^\n]", jogador.nome);
    
    printf("A idade do jogador: "); 
    scanf("%d", &jogador.idade);
    
    printf("Numero de jogos do jogador: ");
    scanf("%d", &jogador.jogos);
    
    printf("Numero de gols do jogador: ");
    scanf("%d", &jogador.gols);
    
    return 0;
}

 

Executa apenas o jogador.nome e código acaba, alguém sabe o porque?

  • Membro VIP
Postado

Sobre:

1 hora atrás, Drigs disse:

scanf("[^\n]", jogador.nome);

 

Acho que faltou o "%", algo como:

scanf("%[^\n]", jogador.nome);

 

adicionado 1 minuto depois
7 minutos atrás, Math.Pi disse:

O que é isso? "[^\n]"

 

Eu não lembro, mas acho que serve para fazer aceitar espaços no texto, ou seja, passa a ler até identificar um \n (ENTER).

adicionado 4 minutos depois

@Drigs, sobre  a definição do tipo, sugeriria algo assim:
 

typedef struct _Jogador{
    char nome[100];
    int  idade;
    int  jogos;
    int  gols;
} Jogador;

Jogador jogador;

Ou seja, o tipo em si sem o "_", e usando uma nomenclatura mais coerente com a variável em si.

adicionado 7 minutos depois

Se for criar um vetor, poderia fica no plural, ex.:

Jogador jogadores[5];

Por ai vai...

  • Curtir 1
  • Amei 1
Postado
9 horas atrás, Simon Viegas disse:

Acho que faltou o "%", algo como:


scanf("%[^\n]", jogador.nome);

Exato. Esse é o erro. 

Só q ficaria mais adequado p  o exercíco se jogador fosse um vetor, para poder acessar os dados da struct por meio dos índices do mesmo 

Postado
11 horas atrás, Drigs disse:

typedef struct futebol{

        char nome[100];

        int idade;

        int jogos;

        int gols; 

t_futebol;

E tem mais, não precisa declara dois nomes diferentes para mesma coisa, se não vai usá-los (Já fiz muito isso).

 

Podemos usar um só nome e ter com isso mais consistência no código-fonte.

typedef struct Jogador Jogador;
struct Jogador {
  char nome[47];
  int  idade;
  int  jogos;
  int  gols;
};

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!