//Ai galera to implementando um projeto, porem não consigo fazer consultar de jeito nenhum no arquivo txt, será que //alguem pode me ajudar???
//o mesmo esta feito em dois arquivos o primeiro é o de funções:
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define ARQUIVO "alunos.txt"
struct Aluno{
long int matricula;
char nome[50];
float nota1,nota2,media;
};
FILE *arquivo;
void limpaTela(){
system("cls");
}
int verificaArquivo(){
arquivo = fopen(ARQUIVO,"rt");
if (arquivo){
printf("\n\nArquivo Aberto com sucesso!!!");
arquivo = fopen(ARQUIVO,"a");
return 1;
}else{
arquivo = fopen(ARQUIVO,"wt");
//arquivo = fopen(ARQUIVO,"a");
printf("\n\nOcorreu um ERRO ao abrir ARQUIVO!!!");
printf("\nNome do Arquivo %s ",ARQUIVO);
return 0;
}
}
void incluirAluno();
void excluirAluno();
void consultarAluno();
void mostraAluno(long int m,char n[50],float n1,float n2,float md);
void gravaAluno(long int m,char n[50],float n1,float n2,float md);
void sair();
montaMenu(){
int op;
limpaTela();
printf("\n<<< S E J A B E M V I N D O >>>\n");
printf("\n1 - Incluir Aluno");
printf("\n2 - Excluir Aluno");
printf("\n3 - Consultar Aluno");
printf("\n[Opcao] ==> ");
scanf("%d",&op);
switch(op)
{
case 1:
incluirAluno();
break;
case 2:
excluirAluno();
break;
case 3:
consultarAluno();
break;
case 4:
sair();
break;
}
}
void gravaAluno(long int m,char n[50],float n1,float n2,float md){
int result,i;
if (verificaArquivo() == 1){
result = fprintf(arquivo,"%d - %s - %f %f %f\n",m,n,n1,n2,md,i);
if (result == EOF)
printf("Erro ao gravar arquivo..");
else
printf("\nRegistro gravado com sucesso...");
fclose(arquivo);
getch();
montaMenu();
}
}
void mostraAluno(long int m,char n[50],float n1,float n2,float md)
{
char tecla;
limpaTela();
printf("\nMatricula: %08d",m);
printf("\nNome : %s",n);
printf("\nNota 01 : %4.1f",n1);
printf("\nNota 02 : %4.1f",n2);
printf("\nMedia : %4.1f",md);
printf("\n\nPara confirmar a gravacao Digite [G] ==> ");
tecla = toupper(getch());
putchar(tecla);
if (tecla == 'G'){
gravaAluno(m,n,n1,n2,md);
}else{
printf("\n\nO aluno NAO foi gravado...\nClique em qualquer tecla para retornar ao menu principal");
getch();
montaMenu();
}
}
void incluirAluno(){
struct Aluno aluno;
limpaTela();
printf("Matricula: ");
scanf("%d",&aluno.matricula);
printf("Nome.....: ");
scanf("%s",&aluno.nome);
fflush(stdin);
printf("Nota A1..: ");
scanf("%f",&aluno.nota1);
printf("Nota A2..: ");
scanf("%f",&aluno.nota2);
aluno.media = (aluno.nota1+aluno.nota2)/2;
mostraAluno(aluno.matricula, aluno.nome,
aluno.nota1,aluno.nota2,aluno.media);
getch();
}
// Esse é um dos meus grandes problemas, não sei como fazer ele excluir algo do arquivo txt.
void excluirAluno(){
}
// Esse é o outro problema, ja consegui fazer iniciar, porem dá erro no meu compilador e dai não funciona corretamente
void consultarAluno(){
int i=0;
char name[20];
FILE *consulta;
consulta = fopen("ARQUIVO","rt");
if(consulta != NULL)
{
printf("Erro ao abrir arquivo");
getch();
}
else{
printf (" Digite o nome para pesquisa: ");
fscanf(consulta, "%s", &name);
i = fgetc(consulta);
while (!feof (consulta)){
i++;
putchar(i);
i = fgetc(consulta);
}
}
fclose(consulta);
}
void sair(){
}
// o segundo é o Menu principal
#include <stdio.h>
#include<conio.h>
#include<windows.h>
#include "menu2.c"
main(){
montaMenu();
}
// Sera que alguem consegue me dar um help???