Programação e Desenvolvimento

Projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços.
Tecnologia do Blogger.

Text Widget

Search (Don't Edit)

Sample Text

Formulir Kontak

Nome

E-mail *

Mensagem *

Full-Width Version (true/false)

Flickr

Facebook

Translate

Video of the Day

Slider (Add Label Name Here!) (Documentation Required)

Teste Teste Teste

Know us

Teste Teste Teste Teste

Popular Posts

Featured

10 de dez de 2014

Exemplo de Manipulação de Arquivos em C

Algoritmo consiste em uma Pilha de estrutura com os seguintes campos, nome e idade, armazenados na struct. O algoritmo tem a função de cadastrar, remover, imprimir, salvar, carregar e excluir arquivo. A estrutura será salvo em forma de arquivo Binário.

#include<stdio.h>
#define T 10
typedef struct{
char nome[31];
        int idade;
}PESSOA;
typedef struct{
        PESSOA item[T];
        int topo;
}PILHA;
PILHA iniciaPilha();
int main(){
    FILE *arq;
    PILHA p = iniciaPilha();
    int opc, aux;
    do{
        printf("1 - cadastrar\n"
               "2 - remover\n"
               "3 - imprimir\n"
               "4 - salvar\n"
               "5 - carregar\n"
               "6 - excluir arquivo\n"
               "0 - sair\n");
        scanf("%d",&opc);
        switch(opc){
          case 1:
               getchar();
               if(p.topo < T){
                       
                 printf("nome: ");
                 gets(p.item[p.topo].nome);
                 printf("idade: ");
                 scanf("%d",&p.item[p.topo].idade);
                 p.topo++;
                 system("cls");
                 getchar();
                 }else{
                       printf("PILHA cheiA\n");
                       getche();
                       system("cls");
                       }
          break;
          case 2:
               if(p.topo > 0){
                 p.topo--;
                 printf("nome: %s\nidade: %d\nremovido\n",p.item[p.topo].nome,p.item[p.topo].idade);
               }else
                 printf("PILHA VAZIA\n");
                 getche();
                 system("cls");
          break;
          case 3:
               if(p.topo > 0){
                for(aux = p.topo -1; aux >=0; aux--)
                  printf("nome: %s\nidade: %d\n",p.item[aux].nome,p.item[aux].idade);
                }else
                  printf("PILHA VAZIA\n");
                  getche();
                  system("cls");
          break;
          case 4:
               if(p.topo >= 0){
                 arq = fopen("arquivos_estrutura.bin","wb");
               if(arq != NULL){
                 for(aux =0; aux<p.topo; aux++)
                   if(*p.item[aux].nome)//verifica se comprimento do nome  e 0
                     fwrite(&p.item[aux],sizeof(PESSOA),1,arq);
                 fclose(arq);
                 printf("arquivo gravado com sucesso\n");
                 }else
                  printf("problema ao abrir o arquivo!\n");
                 }else
                  printf("PILHA VAZIA\n");
                  getche();
                  system("cls");
          break;
          case 5:
               if(p.topo < T){
                arq = fopen("arquivos_estrutura.bin","rb");
               if(arq != NULL){
                 for(p.topo =0; p.topo <T; p.topo++)
                   if(fread(&p.item[p.topo],sizeof(PESSOA),1,arq)!=1){
                     if(feof(arq))
                      break;
                   }
                   fclose(arq);
                     printf("arquivo carregado com sucesso!\n");
                   }else
                     printf("problema ao abrir o arquivo!\n");
                   }else
                     printf("PILHA cheia!\n");
                     getche();
                     system("cls");
          break;
          case 6:
               if(remove("arquivos_estrutura.bin")==0)
                printf("arquivo removido com sucesso!\n");
               else
                 printf("erro ao remover arquivo!\n");
               getche();
               system("cls");
          break;
          case 0: break;
          default: printf("erro\n");
          getche();
          system("cls");
     }
    }while( opc !=0);
}
PILHA iniciaPilha(){
      int aux;
      PILHA pi;
      pi.topo = 0;
      for(aux = 0; aux<T; aux++)
       *pi.item[aux].nome = '\0';
       return pi;
}
←  Anterior Proxima  → Inicio

Postagem em destaque

MVF5 System - SOLUÇÕES EM TI!

          Desenvolvimento de projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços. Entre em c...

Seguidores

Total de visualizações

Postagens populares