Ir ao conteúdo
  • Cadastre-se

Oceans of mind

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Bom gente, basicamente o que estou tentando fazer é um programa que: 1. Lê um vetor dinâmico de struct de tamanho desconhecido e escrever num arquivo; 2. Ler do arquivo e printar no terminal; Tem como fazer isso sem ter que informar o tamanho do vetor? Este é o código em que estou trabalhando: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct car { long int id; char name[100]; }Car; void reading(Car *vec){ printf("ID: "); scanf("%d", &vec->id); printf("Name: "); scanf(" %[^\n]", vec->name); FILE *fab = fopen("cars.txt", "ab"); fwrite(&vec, sizeof(Car), 1, fab); fclose(fab); } void printing(Car *vec){ } int main(){ int op; Car *vec = (Car*) malloc (sizeof(Car)); do{ scanf("%d", &op); switch(op){ case 1: reading(vec); break; case 2: printing(vec); break; case 3: printf("End of program"); break; default: printf("invalid option"); } }while(op != 3); }
  2. Eu estou tentando fazer um programa que lê e imprime variáveis de uma struct, a leitura ocorre normal, mas imprime uns dados nada a ver com o que eu inseri não sei exatamente o que estou fazendo errado. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct{ long int idPacote; char nomePacote[50]; }Pacote; void cadastrarPacote(Pacote *vec_pacote, int *n); void imprimirPacote(Pacote *vec_pacote, int *n); int main(){ int op, a; Pacote *vec_pacote = (Pacote*) malloc (sizeof(Pacote)); do{ printf("Insira a opcao: "); scanf("%d", &op); switch(op){ case 1: cadastrarPacote(vec_pacote, &a); break; case 2: imprimirPacote(vec_pacote, &a); break; case 3: printf("Encerrando o programa..."); break; default: printf("tenta outra coisa amadah "); } }while(op != 3); free(vec_pacote); return(0); } void cadastrarPacote(Pacote *vec_pacote, int *n){ int op, i=1; do{ printf("ID do pacote: "); scanf("%ld", &(vec_pacote+i)->idPacote); printf("Nome do pacote: "); scanf(" %[^\n]", (vec_pacote+i)->nomePacote); printf("Deseja continuar? 1-s 0-n\n"); scanf("%d", &op); if(op == 1){ i = i + 1; vec_pacote = (Pacote*) realloc (vec_pacote, (i+1) * (sizeof(Pacote))); } }while(op == 1); *n = i; } void imprimirPacote(Pacote *vec_pacote, int *n){ for(int i=1; i<=*n; i++){ printf("\nID do pacote: %d\n", (vec_pacote+i)->idPacote); printf("Nome do pacote: %s\n", (vec_pacote+i)->nomePacote); } }

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...