Olá pessoal, vim aqui desesperado pois tenho vários projetos da faculdade pra entregar até hoje a noite, um deles é um projeto em C que devia Salvar documentos de texto em uma conta, ter como acessar eles e salvar externamente no windows, assim n perdendo as informações, mas n estou conseguindo sair do que fiz até agora, estou um dois dias sem dormir já, se alguém com conhecimento puder me ajudar com isso :C pra piorar ele está com algum bug e n mostra o erro e nem executa o programa.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
struct documento
{
char namePed[200];
char CPF[200];
char numPed[200];
char qtdPed[200];
char valorped[200];
int cod;
}logP[200];
struct cadastro
{
char CPF[200];
char documento[20000];
char nome[200];
char data[200];
int vazio,cod;
struct documento contaPed;
}log[200];
int verifica_pos(void);
int verifica_cod( int cod );
int opt;
void cadastroP(int cod,int pos, char doc);
void list();
void cadastroDocumento(int cod,int pos, char doc);
void consultaCod (void);
void excluirDoc (void);
int main(void){
int i, x,Opcao,OpcaoDoc,posicao,retorno;
char doc;
do
{
printf("1 - Cadastrar Documento\n");
printf("2 - Acessar Documento\n");
printf("3 - Excluir Documento\n");
printf("4 - Salvar Documento\n");
printf("5 - Sair\n");
printf(" Selecione uma opcao por favor: ");
scanf("%d", &Opcao);
getchar();
if (Opcao == 1)
{
printf("\n\nVoce selecionou a opcao 1 - Cadastrar Documento\n");
posicao=verifica_pos();
if ( posicao != -1 )
{
printf("\nEntre com um codigo de 1 a 200 para localizar seu documento: \n");
scanf("%d",&x);fflush(stdin);
retorno = verifica_cod( x );
if ( retorno == 1 )
cadastroP( x, posicao, doc);
else{
printf("\nCodigo ja existente ou invalido pressione enter para voltar ao menu principal\n");
getchar();
system("cls");
main();
}
}
else
printf("\nNao e possível salvar mais Documentos!\n");
break;
}
else if (Opcao == 2)
{
system("cls");
do{
printf("voce selecionou a opcao 2 - Documentos\n\n");
printf("1 - Pesquisar documento por codigo\n");
printf("2 - Listar todos os documentos\n");
printf("3 - Voltar ao menu principal\n");
printf("Selecione uma opcao por favor: ");
scanf("%d", &OpcaoDoc);
getchar();
if(OpcaoDoc == 1){
consultaCod();
}
else if(OpcaoDoc == 2){
list( );
}
else if(OpcaoDoc == 3){
printf("voce selecionou voltar ao menu principal, pressione ENTER para continuar");
getchar();
system("cls");
}
else
printf("Opcao Invalida\n\n");
}while(OpcaoDoc =!3 || OpcaoDoc > 3 || OpcaoDoc < 0 || OpcaoDoc == 0);
}
else if (Opcao == 3)
{
printf("voce selecionou a opcao 3 - Excluir Documento\n");
excluirDoc();
}
else if (Opcao == 4)
{
printf("voce selecionou a opcao 4 - Sair\n");
}
else{
printf("Opcao invalida, favor pressione enter para voltar ao menu principal");
getchar();
system("cls");
}
} while (Opcao != 4 || Opcao < 4);
}
void list(){
int i,j,cont;
for(i=0;i<200;i++){
if(log[i].cod!=NULL){
printf("\nCodigo: %d \nNome: %s\nCPF: %s\nDocumento: %s\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].documento);
}
}
printf("Pressione enter para volta ao menu principal");
getchar();
system("cls");
}
void cadastroP(int cod, int pos){
int i;
do{
pos = verifica_pos();
log[pos].cod = cod;
printf("\nDigite seu nome: ");
gets(log[pos].nome);
printf("\nDigite seu CPF: ");
gets(log[pos].CPF);
printf("\n\nEscreva aqui seu Documento de 20000 letras: \n");
gets(log[pos].documento);
log[pos].vazio = 1;
opt ==1;
getchar();
}while(opt==1);
system("cls");
main();
}
int verifica_pos( void )
{
int cont = 0;
while ( cont <= 200 )
{
if ( log[cont].vazio == 0 )
return(cont);
cont++;
}
return(-1);
}
int verifica_cod( int cod )
{
int cont = 0;
while ( cont <= 200 )
{
if ( log[cont].cod == cod )
return(0);
cont++;
}
return(1);
}
void consultaCod (void)
{
int cont = 0, cod;
printf("\nEntre com o codigo\n");
scanf("%d",&cod);
fflush(stdin);
system("cls");
while ( cont <= 200 )
{
if (log[cont].cod==cod)
{
if (log[cont].vazio==1)
{
printf("\nCodigo: %d \nNome: %s\nCPF: %s\nDocumento: %s\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].documento);
system ("pause");
system("cls");
break;
}
}
cont++;
if ( cont > 200 ){
printf("\nDocumento não encontrado, pressione enter para volar ao menu principal\n");
getchar();
system("cls");
}
}
}
void excluirDoc(void)
{
int cod, cont = 0;
char resp;
printf("\nEntre com o codigo do documento que deseja excluir: \n");
scanf("%d", &cod );
while ( cont <= 200 )
{
if ( log[cont].cod == cod )
{
if (log[cont].vazio == 1 )
{
printf("\nCodigo: %d \nNome: %s\nCPF: %s\nDocumento: %s\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].documento);
getchar();
printf("\nDeseja realmente exlucir? s/n: ");
scanf("%s",&resp);
if ( ( resp == 'S' ) || ( resp == 's' ) )
{
log[cont].vazio=0;
log[cont].cod = NULL;
printf("\nExclusao feita com sucesso\n");
break;
}
else
{
if ( ( resp == 'N' ) || ( resp == 'n' ) )
{
printf("Exclusao cancelada!\n");
break;
}
}
}
}
cont++;
if ( cont > 200 )
printf("\nCodigo não encontrado\n");
}
system("pause");
system("cls");
}