Ir ao conteúdo
  • Cadastre-se

preciso de ajuda


mariafernanda
Ir à solução Resolvido por mariafernanda,

Posts recomendados

Preciso de ajuda para criar um código:

Uma estrutura que armazene as informações de cada produto: cod, lot e quant

 

Depois.

 

a. Crie um vetor com 05 produtos na função principal;
b. Crie uma sub-rotina para ler todos os campos do vetor criado;
c. Crie uma sub-rotina para escrever o vetor de estoque em um arquivo texto. Cada linha
do arquivo deverá conter o cod, lot e quant de cada produto, nesta ordem

 

se alguém puder me ajudar fico grata...

Link para o comentário
Compartilhar em outros sites

Neste codigo nao ta imprimindo direto, ta salvando normal arquivo.txt, mais a impressão não ta dando certo. se alguém

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#include <conio.h>struct frase{    int codigo[100];    int lote[100];    int quantidade[100];};   void grava(struct frase a[100],int fim)  {      FILE *arq;      int teste,i;      arq = fopen("arquivo.txt","wb");       if(arq != NULL)       {          for(i=0;i<fim;i++)          {              teste = fwrite(&a[i],sizeof(struct frase),1,arq);              if (teste !=1)              {                 printf("erro ao salvar");                 getch();              }          }            fclose(arq);       }          else          {             printf("erro ao abrir arquivo");          }  } int carrega(struct frase a[100]) {    FILE *arq;    int teste,percorre=0;    struct frase registro;    arq = fopen("arquivo.txt","rb");    if(arq != NULL)    {       while (!feof(arq))       {             teste = fread(&registro,sizeof(struct frase),1,arq);             if (teste ==1)             {                a[percorre] = registro;                percorre++;             }       }           fclose(arq);    }      return percorre;}  int main() {   struct frase vet[100];   int ultimo=0,i,op=0;      while(op !=3)      {           ultimo = carrega(vet);           printf ("1 - Grava Arquivo :\n");           printf ("2 - Ler Arquivo :\n");           printf ("3 - Sair:\n");           fflush (stdin);           scanf ("%d",&op);           fflush (stdin);           if(op==1)           {              printf("Informe O Codigo:");              fflush(stdin);              fgets (vet[ultimo].codigo,100,stdin);              fflush(stdin);              ultimo++;              printf("Informe o Lote:");              fflush(stdin);              fgets (vet[ultimo].lote,100,stdin);              fflush(stdin);              ultimo++;              printf("Informe a quantidade:");              fflush(stdin);              fgets (vet[ultimo].quantidade,100,stdin);              fflush(stdin);              ultimo++;              grava(vet,ultimo);              printf("\n");              printf("Cadastro Realizado com sucesso !\n\n");              system("pause");              system("CLS");           }          if(op==2)          {                if (ultimo == 0){                    printf("Nenhum produto encontrado.Favor verificar!\n");                    printf("\n");}               else{                         for(i=0;i<ultimo;i++){                         printf("nome = %s\n",vet[i].codigo);                         printf("lote = %s\n",vet[i].lote);                         printf("quantidade = %s\n",vet[i].quantidade);}                    }          }           if(op==3){              printf("Encerrando o programa com sucesso!\n\n");              system("pause");              exit(0);}      }//while    }//main

puder me ajudar. segue imagem do erro, ta desordenado de mais o resultado.

post-781175-0-97359800-1447285820_thumb.

Link para o comentário
Compartilhar em outros sites

  • Solução

Esta com um pequeno problema o código, ele grava normal mais na hora de ler não

#include <stdio.h>    #include <stdlib.h>    typedef struct{        int codigo;        int lote;        int quantidade;    } Produto ;    int grava ( Produto *p ) {        FILE *f;        f=fopen( "arquivo.txt", "a" );        if ( !f ){            perror("Erro: ");            return 0;        }        fprintf ( f, "%d %d %d\n", p->codigo, p->lote, p->quantidade );        fclose ( f );        printf ( "\n" );        printf ( "Cadastro Realizado com sucesso !\n\n" );        return 1;    }    int carrega ( FILE *f, Produto *p ) {        return fscanf( f, "%d %d %d%*c", &p->codigo, &p->lote, &p->quantidade );    }    int menu();    int main() {        Produto lista[5];        int ultimo = 0, i, op = 0;        int continuar = 1;        while ( continuar == 1) {            op = menu();            if ( op == 1 ) {                if ( ultimo < 5 ) {                    printf ( "Informe O Codigo:" );                    scanf ( "%d%*c", &lista[ultimo].codigo );                    printf ( "Informe o Lote:" );                    scanf ( "%d%*c", &lista[ultimo].lote );                    printf ( "Informe a quantidade:" );                    scanf ( "%d%*c", &lista[ultimo].quantidade );                    ultimo += grava ( &lista[ultimo] );                    getchar();                } else{                    printf ( "Maximo de produtos registrados alcançado\n" );                    getchar();                }            }            if( op == 2 ) {                FILE * f = fopen ( "arquivo.txt", "r" );                i = 0;                ultimo = 0;                if ( !f ) {                    perror ( "Erro: " );                } else{                    while ( carrega ( f, &lista[i] ) != EOF ) {                        printf ( "nome = %2d ", lista[i].codigo, "lote = %2d ", lista[i].lote,"quantidade = %2d\n", lista[i].quantidade );                        printf ( "lote = %2d ", lista[i].lote );                        printf ( "quantidade = %2d\n", lista[i].quantidade );                        ultimo++;                    }                                 }                fclose ( f );                getchar();            }            if ( op == 3 ) {                printf ( "Encerrando o programa com sucesso!\n\n" );                getchar();                continuar = 0;            }            system ( "CLS" );        }        return 0;    }//main    int menu(){        int op;        printf ( "1 - Grava Arquivo :\n" );        printf ( "2 - Ler Arquivo :\n" );        printf ( "3 - Sair:\n" );        scanf ( "%d%*c", &op );        return op;    }

imprimi e fica rodando o programa segue print da tela, se alguém puder me ajudar.

post-781175-0-50362700-1447344598_thumb.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!