switch (opcao) {
case 1 : printf("INSERCAO DE ALUNO !\n\n");
insereAluno(lista,TAM);
r=1;
break;
case 2 : printf("\nEXIBICAO DE ALUNOS !\n\n");
if( r )exibeAlunos(lista, TAM);
else printf("Primeiro Insira Os Dados !");
printf("\n\n");
break;
case 3 :
Pergunta
Jeany Soares
Boa tarde,
Tenho o código a seguir e não estou conseguindo usar a função remover um item que já foi inserido anteriormente :
Gostaria de saber como inserir essa função de remover. Obrigada.😃
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 1000
typedef struct {
char serie[10];
char nome[50];
char idade[25];
} Aluno;
void inicializaLista(Aluno *lista, int n) {
int i;
for (i = 0; i < n; i++) {
strcpy(lista[i].serie,"");
strcpy(lista[i].nome,"");
strcpy(lista[i].idade,"");
}
}
void copiaAlunosLista2Arquivo(Aluno *lista, int n, char *nomeArquivo) {
FILE *procurador = fopen(nomeArquivo,"a");
int i;
for (i = 0; i < n; i++) {
if (strcmp(lista[i].serie,"") == 0) {
break;
}
fprintf(procurador, "%s ", lista[i].serie);
fprintf(procurador, "%s ", lista[i].nome);
fprintf(procurador, "%s\n", lista[i].idade);
fflush(procurador);
}
fclose(procurador);
}
void insereAluno(Aluno *lista, int n) {
int i;
FILE *procurador = fopen("salvaAlunos.txt","a");
char serie[10];
printf("Serie : ");
scanf("%s", serie);
fflush(stdin);
for (i = 0; i < n; i++) {
if (strcmp(lista[i].serie, serie) == 0) {
printf("Serie já cadastrada. Voltando para menu\n");
break;
}
if (strcmp(lista[i].serie,"") == 0) {
printf("Aluno sera inserido na posicao %d.\n", i);
strcpy(lista[i].serie, serie);
fflush(stdin );
printf("Nome: " );
scanf("%s",lista[i].nome );
fflush(stdin );
printf("Sigla idade: " );
scanf("%s", lista[i].idade);
fprintf(procurador, "%s " , lista[i].serie);
fprintf(procurador, "%s " , lista[i].nome );
fprintf(procurador, "%s\n", lista[i].idade );
break;
}
}
fclose(procurador);
if (i == n) printf("Lista cheia!\n");
}
int pega_do_arquivoTXT(Aluno *lista, int n){
FILE *fp = fopen("salvaAlunos.txt","r");
if(fp == NULL)return 0;
int i=0;
while(fscanf(fp,"%s",&lista[i].serie)!= EOF &&
fscanf(fp,"%s",&lista[i].nome )!= EOF &&
fscanf(fp,"%s",&lista[i].idade )!= EOF ){
i++;
}
return 1;
}
void exibeAlunos(Aluno *lista, int n) {
int i;
for (i = 0; i < n; i++) {
if (strcmp(lista[i].serie,"") == 0) {
break;
}
printf("Serie -: %s\n", lista[i].serie);
printf("Nome ------: %s\n", lista[i].nome );
printf("Idade -----: %s\n", lista[i].idade );
printf("-----------------------------------\n");
}
}
int main() {
Aluno lista[TAM];
int opcao,r;
inicializaLista(lista, TAM);
r = pega_do_arquivoTXT(lista,TAM);
do {
printf("1 - Insere aluno\n");
printf("2 - Lista alunos\n");
printf("3 - Remove aluno\n");
printf("4 - Sair\n");
printf("Opcao: ");
scanf("%d", &opcao);
switch (opcao) {
case 1 : printf("INSERCAO DE ALUNO !\n\n");
insereAluno(lista,TAM);
r=1;
break;
case 2 : printf("\nEXIBICAO DE ALUNOS !\n\n");
if( r )exibeAlunos(lista, TAM);
else printf("Primeiro Insira Os Dados !");
printf("\n\n");
break;
case 3 :
break;
case 4 :
break;
default : printf("Opcao invalida ! !\n");
}
} while (opcao != 4);
return 1;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.