Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 06:05

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Reading and Writing and deleting content in a file with C

Discussion on Reading and Writing and deleting content in a file with C within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2010
Posts: 152
Received Thanks: 1
Reading and Writing and deleting content in a file with C

Hello,
I have a school project and for last few days been struggling hard on finishing it.

I am after adding to the following code, where it will save the functions entered on cmd to a file, then read them to the screen and, if then you can choice to delete them. But im have some trouble doing that.
Im looking for someone that can help me a bit plz

Code:
//Bibliotecas utilizadas
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//Se o sistema for Windows adiciona determinada biblioteca, e definindo comandos de limpar e esperar
#ifdef WIN32
    #include <windows.h>
    #define LIMPA_TELA system("cls")
//Senão for Windows (ex.: Linux)
#else
    #include <unistd.h>
    #define LIMPA_TELA system("/usr/bin/clear")
#endif

//Máximo de bytes para uma String
#define BUFFER 64


//Estrutura da lista que será criada
typedef struct lista {
    char *nome;
    int ano;
    int numero;
    int idade;
    int tele;
    int firstperiodo;
    int secondperiodo;
    int thirdperiodo;
    struct lista *proximo;
} Dados;

//Funções para manusear os dados (irão retornar dados)
Dados *inicia_dados  (char *nome, int ano, int numero, int idade, int tele, int firstperiodo, int secondperiodo, int thirdperiodo);
Dados *insere_dados  (Dados *dados, char *nome, int ano, int numero, int idade, int tele, int firstperiodo, int secondperiodo, int thirdperiodo);
Dados *delbusca_dados(Dados *dados, char *chave);
Dados *deleta_dados  (Dados *dados, int nTipo);
int   checa_vazio    (Dados *dados);

//Funções para mostrar dados
void  exibe_dados    (Dados *dados);
void  exibe_tamanho  (Dados *nova);
void  busca_dados    (Dados *dados, char *chave);

//Funções do Menu
void criavazia(void);    //1
void insereinicio(void); //2
void inserefim(void);    //3
void listavazia(void);   //4
void prielemento(void);  //5
void ultelemento(void);  //6
void exibe(void);        //7
void exibetam(void);     //8
void deletapri(void);    //9
void deleta(void);       //a
void delbusca(void);     //b
void busca(void);        //c

//Inicializando os dados da lista
Dados *principal = NULL;

//---------------------------------
//     Opção '1'
//---------------------------------

//Criando uma lista vazia
void criavazia(void){
    char *nome;
    int ano;
    int numero;
    int idade;
    int tele;
    int firstperiodo;
    int secondperiodo;
    int thirdperiodo;
    //Alocando dados para uma String
    nome = (char *)malloc(BUFFER);
    //Lendo String Nome
    fprintf(stdout, "\n\nInsere o Nome: \n----> ");
    scanf("%s", nome);
    fprintf(stdout, "\n");
    //Lendo int Ano
    fprintf(stdout, "Insere o Ano Lectivo: \n----> ");
    scanf("%d", &ano);
    fprintf(stdout, "\n");
    //Lendo int numero
    fprintf(stdout, "Insere o Numero na Turma: \n----> ");
    scanf("%d", &numero);
    fprintf(stdout, "\n");
    //Lendo int Idade
    fprintf(stdout, "Insere a Idade: \n----> ");
    scanf("%d", &idade);
    fprintf(stdout, "\n");
    //Lendo int tele
    fprintf(stdout, "Insere o numero de Telefone: \n----> ");
    scanf("%d", &tele);
    fprintf(stdout, "\n");
    //Lendo int firstperiodo
    fprintf(stdout, "Insere a nota do Primeiro Periodo: \n----> ");
    scanf("%d", &firstperiodo);
    fprintf(stdout, "\n");
    //Lendo int secondperiodo
    fprintf(stdout, "Insere a nota do Segundo Periodo: \n----> ");
    scanf("%d", &secondperiodo);
    fprintf(stdout, "\n");
    //Lendo int thirdperiodo
    fprintf(stdout, "Insere a nota do Terceiro Periodo: \n----> ");
    scanf("%d", &thirdperiodo);
    fprintf(stdout, "\n");
    //Lançando os dados lidos na lista Principal
    free(principal);
    principal = inicia_dados(nome, ano, numero, idade, tele, firstperiodo, secondperiodo, thirdperiodo);
}


//Inicia os dados da lista vazia
Dados *inicia_dados(char *nome, int ano, int numero, int idade, int tele, int firstperiodo, int secondperiodo, int thirdperiodo) {
    Dados *novo;
    //Alocando memória para a posição atual da lista
    novo = (Dados *)malloc(sizeof(Dados));
    //Lanca os dados lidos
    novo->nome = (char *)malloc(strlen(nome)+1);
    strncpy(novo->nome, nome, strlen(nome)+1);
    novo->ano = ano;
    novo->numero = numero;
    novo->idade = idade;
    novo->tele = tele;
    novo->firstperiodo = firstperiodo;
    novo->secondperiodo = secondperiodo;
    novo->thirdperiodo = thirdperiodo;
    //Aponta para a proxima posicao da lista
    novo->proximo = NULL;
    return novo;
}

//---------------------------------
//     Opção '2'
//---------------------------------

//Inserindo no início da lista
void insereinicio(void){
    char *nome;
    int ano;
    int numero;
    int idade;
    int tele;
    int firstperiodo;
    int secondperiodo;
    int thirdperiodo;
    //Reservando espaço para String
    nome = (char *)malloc(BUFFER);
    //Armazenando String Nome
    fprintf(stdout, "\n\nInsere o Nome: \n----> ");
    scanf("%s", nome);
    fprintf(stdout, "\n");
    //Armazenando int Ano
    fprintf(stdout, "Insere o Ano Lectivo: \n----> ");
    scanf("%d", &ano);
    fprintf(stdout, "\n");
    //Armazenando int numero
    fprintf(stdout, "Insere o Numero na Turma: \n----> ");
    scanf("%d", &numero);
    fprintf(stdout, "\n");
    //Armazenando int Idade
    fprintf(stdout, "Insere a Idade: \n----> ");
    scanf("%d", &idade);
    fprintf(stdout, "\n");
    //Armazenando int tele
    fprintf(stdout, "Insere o numero de Telefone: \n----> ");
    scanf("%d", &tele);
    fprintf(stdout, "\n");
    //Armazenando int firstperiodo
    fprintf(stdout, "Insere a nota do Primeiro Periodo: \n----> ");
    scanf("%d", &firstperiodo);
    fprintf(stdout, "\n");
    //Armazenando int secondperiodo
    fprintf(stdout, "Insere a nota do Segundo Periodo: \n----> ");
    scanf("%d", &secondperiodo);
    fprintf(stdout, "\n");
    //Armazenando int thirdperiodo
    fprintf(stdout, "Insere a nota do Terceiro Periodo: \n----> ");
    scanf("%d", &thirdperiodo);
    fprintf(stdout, "\n");
    //Lançando dados no ínicio da lista
    principal = insere_dados(principal, nome, ano, numero, idade, tele, firstperiodo, secondperiodo, thirdperiodo);
}

//Inserindo dados recebidos
Dados *insere_dados(Dados *dados, char *nome, int ano, int numero, int idade, int tele, int firstperiodo, int secondperiodo, int thirdperiodo) {
    Dados *inicio;
    //Alocando memória para a posição atual
    inicio = (Dados *)malloc(sizeof(Dados));
    //Lançando os dados lidos
    inicio->nome = (char *)malloc(strlen(nome)+1);
    strncpy(inicio->nome, nome, strlen(nome)+1);
    inicio->ano = ano;
    inicio->numero = numero;
    inicio->idade = idade;
    inicio->tele = tele;
    inicio->firstperiodo = firstperiodo;
    inicio->secondperiodo = secondperiodo;
    inicio->thirdperiodo = thirdperiodo;
    //O próximo valor aponta para a lista já existente
    inicio->proximo = dados;
    return inicio;
}

//---------------------------------
//     Opção '3'
//---------------------------------

//Inserção de dados no final de uma lista
void inserefim(void) {
    char *nome;
    int ano;
    int numero;
    int idade;
    int tele;
    int firstperiodo;
    int secondperiodo;
    int thirdperiodo;
    //Alocação de espaço para String Nome
    nome = (char *)malloc(BUFFER);
    //Armazenando String Nome
    fprintf(stdout, "\n\nInsere o Nome: \n----> ");
    scanf("%s", nome);
    fprintf(stdout, "\n");
    //Armazenando Int Ano
    fprintf(stdout, "Insere o Ano lectivo: \n----> ");
    scanf("%d", &ano);
    fprintf(stdout, "\n");
    //Armazenando Int Numero
    fprintf(stdout, "Insere o Numero na Turma: \n----> ");
    scanf("%d", &numero);
    fprintf(stdout, "\n");
    //Armazenando Int Idade
    fprintf(stdout, "Insere a Idade: \n----> ");
    scanf("%d", &idade);
    fprintf(stdout, "\n");
    //Armazenando Int tele
    fprintf(stdout, "Insere o numero de Telefone: \n----> ");
    scanf("%d", &tele);
    fprintf(stdout, "\n");
    //Armazenando Int Firstperiodo
    fprintf(stdout, "Insere a nota do Primeiro Periodo: \n----> ");
    scanf("%d", &firstperiodo);
    fprintf(stdout, "\n");
    //Armazenando Int Secondperiodo
    fprintf(stdout, "Insere a nota do Segundo Periodo: \n----> ");
    scanf("%d", &secondperiodo);
    fprintf(stdout, "\n");
    //Armazenando Int Thirdperiodo
    fprintf(stdout, "Insere a nota do Terceiro Periodo: \n----> ");
    scanf("%d", &thirdperiodo);
    fprintf(stdout, "\n");
    //Criando listas auxiliares
    Dados *final,*aux;
    //Alocando dados para a posição final da lista
    final = (Dados *)malloc(sizeof(Dados));
    //Setando os valores Nome e Idade
    final->nome = (char *)malloc(strlen(nome)+1);
    strncpy(final->nome, nome, strlen(nome)+1);
    final->ano = ano;
    final->numero = numero;
    final->idade = idade;
    final->tele = tele;
    final->firstperiodo = firstperiodo;
    final->secondperiodo = secondperiodo;
    final->thirdperiodo = thirdperiodo;
    //A pŕoxima posição será Nulo
    final->proximo=NULL;
    //A lista auxiliar será igual a Principal
    aux=principal;
    //Enquanto o próximo de auxiliar não for Nulo
    while(aux->proximo!=NULL){
        aux=aux->proximo;
    }
    //O último valor, será Nulo, e depois apontando para
    //o Final
    aux->proximo=NULL;
    aux->proximo=final;
}

//---------------------------------
//     Opção '4'
//---------------------------------

//Função que testa se a lista está vazia
void listavazia(void){
    if (principal == NULL)
        fprintf(stdout, "\n\nLista esta Vazia!\n\n ");
    else
        fprintf(stdout, "\n\nLista nao esta Vazia!\n\n ");
    getchar();
}

//---------------------------------
//     Opção '5'
//---------------------------------

//Mostrar o primeiro elemento da lista
void prielemento(void){
    fprintf(stdout, "------------------------\n");
    fprintf(stdout, "Nome: %s\n", principal->nome);
    fprintf(stdout, "Ano Lectivo: %d%c Ano\n", principal->ano,167);
    fprintf(stdout, "Numero: %d%cN\n", principal->numero,167);
    fprintf(stdout, "Idade: %d Anos\n", principal->idade);
    fprintf(stdout, "Numero de Telemovel: %d\n", principal->tele);
    fprintf(stdout, "Nota do Primerio Periodo: %d\n", principal->firstperiodo);
    fprintf(stdout, "Nota do Segundo Periodo: %d\n", principal->secondperiodo);
    fprintf(stdout, "Nota do Terceiro Periodo: %d\n", principal->thirdperiodo);
    fprintf(stdout, "Media do aluno:");
       float media = (principal->firstperiodo + principal->secondperiodo + principal->thirdperiodo)/3;
{

   if (media >=9.5)

       {
     printf (" Foi aprovado! Media final %2.f",media);
     getch();
       }

   if (media <9.5)

       {
    printf (" Foi reprovado! Media final %2.f",media);
    getch();
       }
}
 fprintf(stdout, "\n------------------------\n");
    getchar();
}




//---------------------------------
//     Opção '6'
//---------------------------------

//Mostrando o último elemento da lista
void ultelemento(void){
    Dados *aux=principal;
    //Enquanto o próximo elemento não for NULL
    //Avance uma posição
    while(aux->proximo!=NULL){
        aux=aux->proximo;
    }
    fprintf(stdout, "------------------------\n");
    fprintf(stdout, "Nome: %s\n", aux->nome);
    fprintf(stdout, "Ano Lectivo: %d%c Ano\n", aux->ano,167);
    fprintf(stdout, "Numero: %d%cN\n", aux->numero,167);
    fprintf(stdout, "Idade: %d Anos\n", aux->idade);
    fprintf(stdout, "Numero de Telemovel: %d\n", aux->tele);
    fprintf(stdout, "Nota do Primeiro Periodo: %d\n", aux->firstperiodo);
    fprintf(stdout, "Nota do Segundo Periodo: %d\n", aux->secondperiodo);
    fprintf(stdout, "Nota do Terceiro Periodo: %d\n", aux->thirdperiodo);
    fprintf(stdout, "Media do aluno:");
       float media = (aux->firstperiodo + aux->secondperiodo + aux->thirdperiodo)/3;
{

   if (media >=9.5)

       {
     printf (" Foi aprovado! Media final %2.f",media);
     getch();
       }

   if (media <9.5)

       {
    printf (" Foi reprovado! Media final %2.f",media);
    getch();
       }
}
    fprintf(stdout, "\n------------------------\n");
    getchar();
}

//---------------------------------
//     Opção '7'
//---------------------------------

//Exibindo dados da lista
void exibe(void) {
    //Se não estiver vazio, exibe os dados
    if (!checa_vazio(principal))
        exibe_dados(principal);
}

//Exibindo todos os dados do menu
void exibe_dados(Dados *dados) {
    fprintf(stdout, "Lista:\n\n");
    fprintf(stdout, "------------------------\n");
    //Exibindo todos os valores da lista
    for (; dados != NULL; dados = dados->proximo) {
        fprintf(stdout, "Nome: %s\n", dados->nome);
        fprintf(stdout, "Ano Lectivo: %d%c Ano\n", dados->ano,167);
        fprintf(stdout, "Numero: %d%cN\n", dados->numero,167);
        fprintf(stdout, "Idade: %d Anos\n", dados->idade);
        fprintf(stdout, "Numero de Telemovel: %d\n", dados->tele);
        fprintf(stdout, "Nota do Primeiro Periodo: %d\n", dados->firstperiodo);
        fprintf(stdout, "Nota do Segundo Periodo: %d\n", dados->secondperiodo);
        fprintf(stdout, "Nota do Terceiro Periodo: %d\n", dados->thirdperiodo);
        fprintf(stdout, "Media do aluno:");
       float media = (dados->firstperiodo + dados->secondperiodo + dados->thirdperiodo)/3;
{

   if (media >=9.5)

       {
     printf (" Foi aprovado! Media final %2.f",media);
     getch();
       }

   if (media <9.5)

       {
    printf (" Foi reprovado! Media final %2.f",media);
    getch();
       }
}
    }
    fprintf(stdout, "\n------------------------\n");
    getchar();
}

//---------------------------------
//     Opção '8'
//---------------------------------


void exibetam(void){
    if (!checa_vazio(principal))
        exibe_tamanho(principal);
}

void exibe_tamanho(Dados *nova){
  int aux=0, tamanho=0;
  fprintf(stdout, "\n------------------------\n");
  for (; nova != NULL; nova = nova->proximo) {
    aux++;
    tamanho+=sizeof(nova);
  }
  fprintf(stdout, "Total de Elementos: %d\nTamanho Total: %d bytes\n",aux,tamanho);
   fprintf(stdout, "\n------------------------\n");
  getchar();
}

//---------------------------------
//     Opção '9' e 'a'
//---------------------------------

//Deleta o Primeiro valor
void deletapri(void) {
    if (!checa_vazio(principal))
        principal = deleta_dados(principal,1);
}

//Deleta o Último valor
void deleta(void) {
    if (!checa_vazio(principal))
        principal = deleta_dados(principal,2);
}

//Deleta registros da lista, Tipo 1 = Inicio, Tipo 2 = Fim
Dados *deleta_dados(Dados *dados, int nTipo) {
    if(nTipo==1){
        //Apontando para a próxima posição
        Dados *novo;
        novo = dados->proximo;
        //Limpando os dados
        free(dados->nome);
        free(dados);
        fprintf(stdout, "O primeiro registro foi eliminado com sucesso.\n");
        getchar();
        return novo;
    }
    if(nTipo==2){
        Dados *novo=dados, *aux=dados;
        //Se a lista estiver no fim, exclui o que restou
        if(novo->proximo==NULL){
            free(novo);
            aux=NULL;
        }
        else{
            //Laço de repetição para chegar no fim da lista
            while(novo->proximo!=NULL){
                novo=novo->proximo;
            }
            //Preenchendo os dados da lista auxiliar
            while(aux->proximo!=novo){
                aux=aux->proximo;
            }
            //Limpando os dados e apontando para nulo
            free(novo);
            aux->proximo=NULL;
        }
        fprintf(stdout, "O ultimo registro foi eliminado com sucesso.\n");
        getchar();
        return aux;
    }
}

//---------------------------------
//     Opção 'b'
//---------------------------------

//Deletando valor buscado
void delbusca(void) {
    char *chave;
    //Se não estiver vazio
    if (!checa_vazio(principal)) {
        chave = (char *)malloc(BUFFER);
        //Armazenando o valor digitado
        fprintf(stdout, "Insere o nome para buscar: \n--> ");
        scanf("%s", chave);
        //Deletando a chave buscada
        principal = delbusca_dados(principal, chave);
    }
}

//Deletando os valores buscados
Dados *delbusca_dados(Dados *dados, char *chave) {
    int achou=0,cont=0;
    Dados *juntou, *aux, *nova=dados;

    //Correndo a lista e verificando se encontrou a string buscada, se sim, aumenta o contador e seta a variável de busca
    for (; nova != NULL; nova = nova->proximo) {
        if (strcmp(chave, nova->nome) == 0) {
            achou=1;
            cont++;
        }
    }

    //Se encontrou a busca
    if(achou==1){
        int ind=0;
        //Correndo a lista
        for(ind=0;ind<cont;ind++){
            //Se encontrou na primeira casa apaga a primeira casa
            if(strcmp(chave,dados->nome)==0){
                aux=dados;
                dados=dados->proximo;
                free(aux);
            }
            //Senão, procura até encontrar
            else{
                aux=dados;
                //Posiciona na frente do encontro para exclusão
                while(strcmp(chave,aux->nome)!=0){
                    aux=aux->proximo;
                }

                juntou=dados;
                //Enquanto o auxiliar juntou for diferente do posicionado para exclusão
                while(juntou->proximo!=aux){
                    juntou=juntou->proximo;
                }
                //Aponta para o próximo valor válido
                juntou->proximo=aux->proximo;

                free(aux);
            }
        }
        fprintf(stdout, "Excluido.\n");
    }
    else
        fprintf(stdout, "Nenhum resultado encontrado.\n");

    getchar();
    return dados;
}

//---------------------------------
//     Opção 'c'
//---------------------------------

//Função que busca os dados
void busca(void) {
    char *chave;
    //Senão estiver vazio a lista
    if (!checa_vazio(principal)) {
        chave = (char *)malloc(BUFFER);
        //Lendo o nome que será buscado
        fprintf(stdout, "Insere o nome para buscar: \n--> ");
        scanf("%s", chave);
        //chamando a função que irá procurar o nome
        busca_dados(principal, chave);
    }
}

//Percorre cada ponta da lista verificando busca
void busca_dados(Dados *dados, char *chave) {
    int achou = 0;
    fprintf(stdout, "Lista:\n\n");
    //Percorrendo todas as posições
    for (; dados != NULL; dados = dados->proximo) {
        //Se encontrou, mostra os dados
        if (strcmp(chave, dados->nome) == 0) {
            fprintf(stdout, "------------------------\n");
            fprintf(stdout, "Nome: %s\n", dados->nome);
            fprintf(stdout, "Ano Lectivo: %d%c Ano\n", dados->ano,167);
            fprintf(stdout, "Numero: %d%cN\n", dados->numero,167);
            fprintf(stdout, "Idade: %d Anos\n", dados->idade);
            fprintf(stdout, "Numero de Telemovel: %d\n", dados->tele);
            fprintf(stdout, "Nota do Primeiro Periodo: %d\n", dados->firstperiodo);
            fprintf(stdout, "Nota do Segundo Periodo: %d\n", dados->secondperiodo);
            fprintf(stdout, "Nota do Terceiro Periodo: %d\n", dados->thirdperiodo);
             fprintf(stdout, "Media do aluno:");
       float media = (dados->firstperiodo + dados->secondperiodo + dados->thirdperiodo)/3;
{

   if (media >=9.5)

       {
     printf (" Foi aprovado! Media final %2.f",media);
     getch();
       }

   if (media <9.5)

       {
    printf (" Foi reprovado! Media final %2.f",media);
    getch();
       }
}
             fprintf(stdout, "\n------------------------\n");
            achou++;
        }
    }

    //Mostrando o resultado da busca
    if (achou == 0)
        fprintf(stdout, "Nenhum resultado encontrado.\n");
    else
        fprintf(stdout, "Foram encontrado(s) %d registro(s).\n", achou);

    getchar();
}

//---------------------------------
//     Função Auxiliar
//---------------------------------

//Função que testa se a lista esta vazia
int checa_vazio(Dados *dados) {
    //Se a lista estiver vazia
    if (dados == NULL) {
            fprintf(stdout, "Lista vazia!\n");
            getchar();
            return 1;
    } else
            return 0;
}

//---------------------------------
//     Função Principal
//---------------------------------

int main(void) {
    char escolha;
    int chave=0;
    //Laço que irá mostrar o menu esperando uma opção (char)
    do {
        //Limpando a tela, e mostrando o menu lembrando que primeiramente, os itens estão bloqueados até que seja criada uma lista vazia
        LIMPA_TELA;
        fprintf(stdout, "\n\t\tInformacao dos Alunos\n\n");
        fprintf(stdout, "Escolha uma opcao: \n");
        fprintf(stdout, "1 - Criar lista vazia\n");
        if(chave==1){
            fprintf(stdout, "2 - Inserir no Inicio de uma lista\n");
            fprintf(stdout, "3 - Inserir no Fim de uma lista\n");
        }
        fprintf(stdout, "4 - Lista Vazia...\n");
        if(chave==1){
            fprintf(stdout, "5 - Mostrar dados do primeiro elemento\n");
            fprintf(stdout, "6 - Mostrar dados do ultimo elemento\n");
            fprintf(stdout, "7 - Mostrar todos os valores da Lista\n");
            fprintf(stdout, "8 - Mostrar o tamanho da Lista\n");
            fprintf(stdout, "9 - Eliminar primeiro elemento\n");
            fprintf(stdout, "a - Eliminar ultimo elemento\n");
            fprintf(stdout, "b - Eliminar elemento buscado\n");
            fprintf(stdout, "c - Busca Dados\n");
        }
        fprintf(stdout, "d - Sair\n\n");
        fprintf(stdout, "Resposta: ");
        scanf("%c", &escolha);
        //Se a chave for diferente de zero, porém a escolha for diferente de 1, 4 e d, a escolha será z (opção inválida)
        if((chave==0)&&((escolha!='1')&&(escolha!='d')&&(escolha!='4')))
            escolha='z';

        switch(escolha) {
            //Criando lista vazia
            case '1':
                chave=1;
                criavazia();
                break;
            //Inserindo no início
            case '2':
                insereinicio();
                break;
            //Inserindo no final
            case '3':
                //Se a lista não estiver vazia
                if(principal!=NULL){
                    inserefim();
                }
                //senão inclui no inicio
                else{
                    insereinicio();
                }
                break;
            //Checando se a lista está vazia
            case '4':
                listavazia();
                break;
            //Mostrando Primeiro elemento
            case '5':
                prielemento();
                break;
            //Mostrando Último elemento
            case '6':
                ultelemento();
                break;
            //Exibindo todos elementos
            case '7':
                exibe();
                break;
            //Exibindo tamanho da lista
            case '8':
                exibetam();
                break;
            //Deleta primeiro elementos
            case '9':
                deletapri();
                break;
            //Deleta último elemento
            case 'a':
                deleta();
                break;
            //Deleta elemento buscado
            case 'b':
                delbusca();
                break;
            //Buscando elementos
            case 'c':
                busca();
                break;
            //Saindo e finalizando o programa
            case 'd':
                fprintf(stderr,"Obrigado por utilizar esse programa!\n");
                fprintf(stderr,"------>Terminal de Informação<------\n\n");
                exit(0);
                break;
            //Se foi algum valor inválido
            default:
                fprintf(stderr,"Digite uma opcao valida pressione (-Enter-)!\n");
                getchar();
                break;
        }
        //Impedindo sujeira na gravação da escolha
        getchar();
    }
    while (escolha > 0); //Loop Infinito
    return 0;
}
a906378 is offline  
Old 05/31/2015, 11:16   #2
 
elite*gold: 0
Join Date: Jun 2012
Posts: 409
Received Thanks: 194
Hi,

Wow, please, make your code shorter.

Code:
FILE *myFile
myFile = (path,mode) // mode "r" to read, "w" to write
// your now able to read or to write using fscanf or fprintf
Xavierbot is offline  
Reply


Similar Threads Similar Threads
Reading and Writing Float vb.net
08/11/2011 - .NET Languages - 2 Replies
I Have Friends float in the data writing and lecturers, but also looks different I look different on cheat engine Pls Helpp http://img850.imageshack.us/img850/3018/adszhj.jp g I used Module : Module Module1 Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Integer, ByRef lpdwProcessId As Integer) As Integer Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As...
[Help]When reading/writing from a file
10/08/2010 - CO2 Private Server - 3 Replies
Hello guys...I have 1 or 2 question about reading and writing from a file. Reading: After you have read all the infos from the file you use filestream.close(); binaryreader.close I am wondering...if I insert a filstream.flush() (before filestream.close()) does it have any effect? or is it necessary in reading a file? (as the flush() void says it clears all buffers and causes any buffered data to be writen to the file) Writing:
[HELP]Writing and reading from *.ini files
02/18/2009 - CO2 Programming - 2 Replies
i was trying to do that by myself but after 3days i must say that i cant do it :mad: sooo i will be very happy if somebody could help me with it :) thanks :)
Reading and Writing .INI Files
11/16/2008 - General Coding - 2 Replies
CodeGuru: CIniFile - Class for Reading and Writing .INI Files I found this information useful for starting out on understanding more about the code for read/write ini files. Maybe this will help some others (That are willing to read) :D enjoy



All times are GMT +1. The time now is 06:06.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.