btmvdr 0 Denunciar post Postado Julho 5, 2013 Fiz esse código mas tenho que colocar o que está no case em uma função void, como faço isso? #include<stdio.h> #include<stdlib.h> struct cadastro { char nome[50]; char rua[50]; char numero[14]; char bairro[30]; char cidade[20]; char uf[3]; char telefone[14]; char email[30]; }; int main() { struct cadastro aux[50]; FILE *ponteiroArquivo; int menu; int cont = 0; int op; int i; do { printf("\n\n"); printf(" Cadastro de alunos: \n"); printf(" 1 - Cadastrar Aluno. \n"); printf(" 2 - Exibir lista de alunos. \n"); printf(" 3 - Sair \n"); printf("\n\n"); scanf("%d",&menu); switch(menu) { case 1: for(i=0; i<50; i++) { printf("\n"); printf(" 1 - Inserir Aluno \n"); printf(" 2 - Voltar ao menu \n"); printf("\n\n"); scanf("%d",&op); if(op == 2) { break; } if(op == 1) { printf("Inserir aluno, foi selecionado.\n"); ponteiroArquivo=(fopen("arquivo.txt","a")); // "a" - cria um arquivo novo, ou modifica um ja existente. if(ponteiroArquivo == NULL) { printf("Nao foi possivel abrir o arquivo\n"); break; } printf("Digite seu nome: "); scanf("%s",&aux[i].nome); fflush(stdin); printf("Email: "); scanf("%s",&aux[i].email); fflush(stdin); printf("Telefone: "); scanf ("%s",&aux[i].telefone); fflush(stdin); printf("Rua: "); scanf("%s",&aux[i].rua); fflush(stdin); printf("Numero: "); scanf("%s",&aux[i].numero); fflush(stdin); printf("Bairro: "); scanf("%s",&aux[i].bairro); fflush(stdin); printf("Cidade: "); scanf("%s",&aux[i].cidade); fflush(stdin); printf("UF: "); scanf("%s",&aux[i].uf); fflush(stdin); cont++; //grava os dados no arquivo com fprintf fprintf(ponteiroArquivo,"\nMatricula: %d",cont); fprintf(ponteiroArquivo,"\nNome: %s",aux[i].nome); fprintf(ponteiroArquivo,"\nEmail: %s",aux[i].email); fprintf(ponteiroArquivo,"\nTelefone: %s",aux[i].telefone); fprintf(ponteiroArquivo,"\nRua: %s",aux[i].rua); fprintf(ponteiroArquivo,"\nNumero: %s",aux[i].numero); fprintf(ponteiroArquivo,"\nBairro: %s",aux[i].bairro); fprintf(ponteiroArquivo,"\nCidade: %s",aux[i].cidade); fprintf(ponteiroArquivo,"\nUF: %s\n",aux[i].uf); fclose(ponteiroArquivo);//fecha o arquivo } } break; case 2: printf("Exibir lista de alunos, foi selecionado.\n"); char frase[1000]; ponteiroArquivo = (fopen("arquivo.txt","r")); if(ponteiroArquivo == NULL) { printf("Nao foi possivel abrir o arquivo\n"); break; } while(fgets(frase, 1000, ponteiroArquivo)!= NULL) //vai imprimir o que estiver no arquivo, enquanto não for nulo. { printf("%s",frase); } break; case 3: printf("Sair, foi selecionado.\n"); exit(0); break; } } while(menu != 4); getch(); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
reebr 94 Denunciar post Postado Julho 5, 2013 Faça uma função que tenha como parâmetro um número inteiro (que será correspondente a cada case: 1, 2 e 3). Depois, chame a função passando como argumento o número inteiro vindo do menu. Recomendo leitura: http://forum.imasters.com.br/topic/336835-tutorial-systempause-e-fflushstdin/ Compartilhar este post Link para o post Compartilhar em outros sites