Ir ao conteúdo
  • Cadastre-se
RenanMaia

C Problema com o if-else

Recommended Posts

void copia_arquivo3(FILE *file1, FILE *file2, int codigo)
{
    char confirma_nome_produt2[31];
    float confirma_preco_produt2;
    int confirma_codigo_produt2;
    int confirma_quant_produt2;

     while (fscanf(file1, "%d %f %i %[^\n]s", &confirma_codigo_produt2, &confirma_preco_produt2, &confirma_quant_produt2, confirma_nome_produt2) != EOF)
    {
        if (codigo != confirma_codigo_produt2)
        {
            fprintf(file2, "%d %.2f %i %s\n", confirma_codigo_produt2, confirma_preco_produt2, confirma_quant_produt2, confirma_nome_produt2);
        }
        else
        {
            fprintf(file2, "%d %.2f %i %s\n", confirma_codigo_produt2, confirma_preco_produt2, confirma_quant_produt2--, confirma_nome_produt2);
        }
    }
    fclose(file1);
    fclose(file2);

    remove("produtos\\produto.txt");
    rename("produtos\\produto2.txt", "produtos\\produto.txt");
}

Estou com um problema na hora de uma comparação com o if-else! tenho uma função que lê um arquivo e escreve em outro apenas o que é aprovado pelo if-else, depois deleta o primeiro arquivo e muda o nome do segundo para ter o nome do primeiro! acontece que na hora de imprimir o novo arquivo sai em branco!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, RenanMaia disse:

o novo arquivo sai em branco!

O novo arquivo está em branco!?

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@RenanMaia   o problema não é com if / else ,  pode ser por que esse arquivo que ele recebe por parâmetro não está sendo fechado e assim não está sendo renomeado  .   com o código todo poderíamos ter uma ideia melhor  .

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 01/07/2018 às 17:53, devair1010 disse:

@RenanMaia   o problema não é com if / else ,  pode ser por que esse arquivo que ele recebe por parâmetro não está sendo fechado e assim não está sendo renomeado  .   com o código todo poderíamos ter uma ideia melhor  .

então eu dei o fclose nos dois arquivos, na acho q seja isso! o codigo inteiro esta aqui https://onedrive.live.com/?cid=60C3DB13B693A209&id=60C3DB13B693A209!3048&parId=60C3DB13B693A209!3039&o=OneUp se puder dar uma olhada eu agradeço!

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
30 minutos atrás, devair1010 disse:

@RenanMaia    seria melhor postar seu código aqui mesmo , pois lá no onedriver não tive permissão  para acessa-lo .

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

struct cadastro
{
    char primeiro_nome[15];
    char ultimo_nome[15];
    char cpf[15];
    char data_nasc[11];
};
struct cadastro cliente[200];
typedef struct cadastro_Produt
{
    char nome_produto[31];
    int codigo_produto;
    float valor_produto;
    int quantidade_produtos;
}produto;
produto produtos_cadastrados[1000];

int conta_cliente ;
int conta_produt ;
int opcao, opcao2, opcao3, opcao4, opcao5;
FILE *excluir_produto;
FILE *excluir_client;
FILE *produto_file[200];
FILE *cliente_file[200];
FILE *descricao;
FILE *lerBackUp;
FILE *BackUP;
char ler_descricao[1000];

void tipos_servicos(void);
void cadastros_cliente(void);
void cadastro_produtos(void);
void vendas_produtos(void);
void copia_arquivo(FILE *file1, FILE *file2, char cpf[15]);
void copia_arquivo2(FILE *file1, FILE *file2, int codigo);
void copia_arquivo3(FILE *file1, FILE *file2, int codigo);

int main()
{

    while(opcao < 1 || opcao > 7)
    {
        system("cls");
        puts("======================");
        puts("PRESTADORA DE SERVICOS");
        puts("======================");
        puts("          MENU        ");
        puts("----------------------------------");
        puts("1 - Tipos de servicos");
        puts("2 - Clientes");
        puts("3 - Produtos");
        puts("4 - Vendas");
        puts("5 - servicos prestados por valor");
        puts("6 - relatorio geral");
        puts("7 - Sair");
        puts("----------------------------------");
        scanf("%i", &opcao);

        opcao2 = 0;
        opcao3 = 0;
        opcao4 = 0;

        switch (opcao)
        {
            case 1:
                    system("cls");

                    tipos_servicos();

                    break;
            case 2:
                    system("cls");

                    cadastros_cliente();

                    break;
            case 3:
                    system("cls");

                    cadastro_produtos();

                    break;
            case 4:
                    system("cls");

                    vendas_produtos();

                    break;
            case 5:
                    system("cls");

                    break;

            case 6:
                    system("cls");

                    break;
            case 7:
                    system("cls");
                    exit(0);

                    break;
            default:
                system("cls");
                printf("\a\nOpcao invalida!\n\n");
                system("pause");
        }
    }

    return 0;
}

void tipos_servicos()
{
    while(opcao2 < 1 || opcao2 > 5)
                    {
                        system("cls");
                        puts("======================");
                        puts("PRESTADORA DE SERVICOS");
                        puts("======================");
                        puts("TIPOS DE SERVICOS");
                        puts("----------------------");
                        puts("1 - PINTURA           ");
                        puts("2 - JARDINAGEM        ");
                        puts("3 - FAXINA            ");
                        puts("4 - REFORMA EM GERAL  ");
                        puts("5 - VOLTAR            ");
                        puts("----------------------");
                        scanf("%i", &opcao2);

                        switch (opcao2)
                        {
                            case 1:
                                system("cls");
                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("       PINTURA        ");
                                puts("----------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao pintura.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #100\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");

                                opcao2 = 0;
                                break;
                            case 2:
                                system("cls");
                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("      JARDINAGEM      ");
                                puts("----------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao jardinagem.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #200\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");
                                opcao2 = 0;
                                break;
                            case 3:
                                system("cls");

                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("        FAXINA        ");
                                puts("----------------------");

                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao faxina.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #300\n");

                                printf("\nDigite Enter para voltar!");

                                system("pause");
                                opcao2 = 0;
                                break;
                            case 4:
                                system("cls");

                                puts("======================");
                                puts("PRESTADORA DE SERVICOS");
                                puts("======================");
                                puts("     REFORMA GERAL    ");
                                puts("----------------------------------");
                                puts("Descricao: ");
                                descricao = fopen("Descricao\\descricao rg.txt", "r");
                                if (descricao == NULL)
                                {
                                    printf("\n\aArquivo nao encontrado!");
                                }
                                while (fgets(ler_descricao, 1000, descricao) != NULL)
                                {
                                    printf("\n%s", ler_descricao);
                                }
                                printf("\n\n\nCodigo do servico: #400\n");

                                printf("\nDigite Enter para voltar!");
                                fclose(descricao);
                                system("pause");
                                opcao2 = 0;
                                break;
                            case 5:
                                system("cls");
                                opcao = 0;
                        }
                    }
}

void cadastros_cliente(void)
{
    char ler_cpf[15];

    char confirma_nome[15];
    char confirma_ultimoNome[15];
    char confirma_dataNasc[11];
    char confirma_cpf[15];
    int confirma_numero;
    char cpf_excluido[15];

    while (opcao3 < 1 || opcao3 > 5)
    {
        system("cls");
        puts("======================");
        puts("PRESTADORA DE SERVICOS");
        puts("======================");
        puts("      CLIENTES  ");
        puts("----------------------");
        puts("1 - Cadastrar Cliente ");
        puts("2 - Pesquisar Cliente ");
        puts("3 - Listar Clientes   ");
        puts("4 - Excluir Cliente   ");
        puts("5 - Voltar            ");
        puts("----------------------");
        scanf("%i", &opcao3);

        switch (opcao3)
        {
            case 1:
                system("cls");

                lerBackUp = fopen("BackUp.txt", "r");

                if(lerBackUp == NULL)
                {
                    printf("\a Arquivo nao encontrado!\n");
                    getchar();
                    break;
                }

                fscanf(lerBackUp, "%i", &conta_cliente);

                fclose(lerBackUp);

                puts("======================");
                puts("PRESTADORA DE SERVICOS");
                puts("======================");
                puts("       CADASTRO       ");
                puts("----------------------");
                puts("Primeiro nome:        ");
                scanf("%s", cliente[conta_cliente].primeiro_nome);
                puts("Ultimo Nome:          ");
                scanf("%s", cliente[conta_cliente].ultimo_nome);
                puts("CPF:                  ");
                fflush(stdin);
                scanf("%s", cliente[conta_cliente].cpf);
                puts("Data de Nascimento:   ");
                scanf("%s", cliente[conta_cliente].data_nasc);
                puts("----------------------");
                getchar();

                cliente[conta_cliente].primeiro_nome[0] = toupper(cliente[conta_cliente].primeiro_nome[0]);
                cliente[conta_cliente].ultimo_nome[0] = toupper(cliente[conta_cliente].ultimo_nome[0]);

                cliente_file[conta_cliente] = fopen("clientes\\client.txt", "a");

                fprintf(cliente_file[conta_cliente], "%s %s %s %i %s\n", cliente[conta_cliente].primeiro_nome, cliente[conta_cliente].ultimo_nome, cliente[conta_cliente].data_nasc, conta_cliente, cliente[conta_cliente].cpf);
                fclose(cliente_file[conta_cliente]);
                conta_cliente++;

                BackUP = fopen("BackUp.txt", "w");

                fprintf(BackUP, "%i", conta_cliente);

                fclose(BackUP);

                system("pause");
                system("cls");

                printf("Cadastro efetuado com sucesso!\n");
                system("pause");
                opcao3 = 0;
                break;
                case 2:
                    system("cls");

                    conta_cliente--;
                    puts("==============================");
                    puts(" PRESTADORA DE SERVICOS ");
                    puts("==============================");
                    puts("     PESQUISAR CLIENTES      ");
                    puts("----------------------------------");
                    printf("Digite o CPF do cliente (incluindo pontos e traco): \n");
                    fflush(stdin);
                    scanf("%s", ler_cpf);

                    cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");

                    if (cliente_file[conta_cliente] == NULL)
                    {
                        printf("\a\nArquivo nao encontrado!\n");
                        system("pause");
                        break;
                    }


                    while (fscanf(cliente_file[conta_cliente], "%s %s %s %i %s", confirma_nome, confirma_ultimoNome, confirma_dataNasc, &confirma_numero, confirma_cpf) != EOF || strcmp(ler_cpf, confirma_cpf) != 0)
                    {
                        if (strcmp(ler_cpf, confirma_cpf) == 0)
                        {
                            printf("\n\n");
                            puts("-------------------------------------");
                            printf("Nome: %s %s\n", confirma_nome, confirma_ultimoNome);
                            printf("Data De Nascimento: %s\n", confirma_dataNasc);
                            printf("Numero De Cadastro: %i\n", confirma_numero);
                            printf("CPF: %s\n", confirma_cpf);
                            puts("-------------------------------------");
                            printf("\n\nDigite qualquer tecla para voltar!\n");
                            getchar();
                            opcao3 = 0;
                            break;
                        }
                    }

                    fclose(cliente_file[conta_cliente]);

                    conta_cliente++;
                    system("pause");
                    break;
                    case 3:
                        system("cls");

                        puts("==============================");
                        puts(" PRESTADORA DE SERVICOS ");
                        puts("==============================");
                        puts("  LISTAR TODOS OS CLIENTES  ");
                        puts("------------------------------");
                        putchar('\n');
                        putchar('\n');
                        puts("================================");
                        cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");
                        while (fscanf(cliente_file[conta_cliente], "%s %s  %s %i %s", confirma_nome, confirma_ultimoNome, confirma_dataNasc, &confirma_numero, confirma_cpf) != EOF)
                        {
                            puts("================================");
                            printf("Nome: %s %s\n", confirma_nome, confirma_ultimoNome);
                            printf("Data De Nascimento: %s\n", confirma_dataNasc);
                            printf("Numero De Cadastro: %i\n", confirma_numero);
                            printf("CPF: %s\n", confirma_cpf);
                            puts("================================");
                        }

                        puts("================================");
                        system("pause");
                        opcao3 = 0;
                        fclose(cliente_file[conta_cliente]);
                        opcao3 = 0;
                        break;
                        case 4:
                            system("cls");
                            puts("==============================");
                            puts(" PRESTADORA DE SERVICOS ");
                            puts("==============================");
                            puts("           EXCLUIR CLIENTE             ");
                            puts("------------------------------");
                            printf("Digite o CPF do cliente a ser deletado: \n");
                            scanf("%s", cpf_excluido);

                            cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");
                            if (cliente_file[conta_cliente] == NULL)
                            {
                                printf("\a\nArquivo nao encontrado!\n");
                                system("pause");
                                opcao3 = 0;
                                break;
                            }
                            excluir_client = fopen("clientes\\client2.txt", "w");
                            if (excluir_client == NULL)
                            {
                                printf("\a\nArquivo nao encontrado!\n");
                                system("pause");
                                opcao3 = 0;
                                break;
                            }

                            copia_arquivo(cliente_file[conta_cliente], excluir_client, cpf_excluido);

                            system("cls");
                            printf("\n\nCliente excluido com Sucesso!\n\n");
                            system("pause");
                            opcao3 = 0;
                            break;
                            case 5:
                            opcao = 0;

                                break;
        }
    }
}

void copia_arquivo(FILE *file1, FILE *file2, char cpf[15])
{
    char confirma_nome2[15];
    char confirma_ultimoNome2[15];
    char confirma_dataNasc2[11];
    char confirma_cpf2[15];
    int confirma_numero2;

     while (fscanf(file1, "%s %s  %s %i %s", confirma_nome2, confirma_ultimoNome2, confirma_dataNasc2, &confirma_numero2, confirma_cpf2) != EOF)
    {
        if (strstr(cpf, confirma_cpf2) == 0)
        {
            fprintf(file2, "%s %s  %s %i %s\n", confirma_nome2, confirma_ultimoNome2, confirma_dataNasc2, confirma_numero2, confirma_cpf2);
        }
    }
    fclose(file1);
    fclose(file2);

    remove("clientes\\client.txt");
    rename("clientes\\client2.txt", "clientes\\client.txt");
}

void cadastro_produtos(void)
{
    int ler_codigo;

    int codigo_excluido;
    char confirma_nome_produt[30];
    int confirma_codigo_produt;
    float confirma_preco_produt;
    int confirma_quant_produt;

    while (opcao4 < 1 || opcao4 > 5)
    {
        system("cls");
        puts("======================");
        puts("PRESTADORA DE SERVICOS");
        puts("======================");
        puts("      PRODUTOS            ");
        puts("----------------------");
        puts("1 - Cadastrar Produto");
        puts("2 - pesquisar Produto");
        puts("3 - Listar Produtos");
        puts("4 - Excluir Produto");
        puts("5 - Voltar");
        puts("----------------------");
        scanf("%i", &opcao4);

        switch(opcao4)
        {
            case 1:
            lerBackUp = fopen("BackUp.txt", "r");

            if(lerBackUp == NULL)
            {
                printf("\a Arquivo nao encontrado!\n");
                getchar();
                break;
            }
                int descartavel;
                fscanf(lerBackUp, "%i %i", &descartavel, &conta_produt);
                fclose(lerBackUp);

                system("cls");
                puts("======================");
                puts("PRESTADORA DE SERVICOS");
                puts("======================");
                puts("CADASTRAR PRODUTOS");
                puts("----------------------");
                puts("Nome do produto(Ate 30 characteres):");
                fflush(stdin);
                fgets(produtos_cadastrados[conta_produt].nome_produto, 30, stdin);
                puts("Codigo do Produto:");
                scanf("%d", &produtos_cadastrados[conta_produt].codigo_produto);
                fflush(stdin);
                puts("Valor do Produto:");
                scanf("%f", &produtos_cadastrados[conta_produt].valor_produto);
                puts("Quantidade de Produtos:");
                scanf("%i", &produtos_cadastrados[conta_produt].quantidade_produtos);
                puts("----------------------");
                puts("Produto cadastrado!");
                puts("----------------------");
                system("pause");

                produtos_cadastrados[conta_produt].nome_produto[0] = toupper(produtos_cadastrados[conta_produt].nome_produto[0]);

                produto_file[conta_produt] = fopen("produtos\\produto.txt", "a");

                fprintf(produto_file[conta_produt], "%d %.2f %i %s", produtos_cadastrados[conta_produt].codigo_produto, produtos_cadastrados[conta_produt].valor_produto, produtos_cadastrados[conta_produt].quantidade_produtos, produtos_cadastrados[conta_produt].nome_produto);

                fclose(produto_file[conta_produt]);

                conta_produt++;

                BackUP = fopen("BackUp.txt", "w");

                fprintf(BackUP, "%i %i", descartavel, conta_produt);

                fclose(BackUP);

                opcao4 = 0;
                break;
            case 2:
                system("cls");

                conta_produt--;
                puts("==============================");
                puts(" PRESTADORA DE SERVICOS ");
                puts("==============================");
                puts("     PESQUISAR PRODUTO      ");
                puts("------------------------------");
                printf("Digite o codigo do produto: \n");
                fflush(stdin);
                scanf("%i", &ler_codigo);

                                produto_file[conta_produt] = fopen("produtos\\produto.txt", "r");

                                if (produto_file[conta_produt] == NULL)
                                {
                                    printf("\a\nArquivo nao encontrado!\n");
                                    system("pause");
                                    break;
                                }
                                while (fscanf(produto_file[conta_produt], "%d %f %i %[^\n]s", &confirma_codigo_produt, &confirma_preco_produt, &confirma_quant_produt, confirma_nome_produt) != EOF || ler_codigo != confirma_codigo_produt)
                                {
                                    if (ler_codigo == confirma_codigo_produt)
                                    {
                                        printf("\n\n");
                                        puts("============================");
                                        printf("Nome: %s\n", confirma_nome_produt);
                                        printf("Codigo do Produto: %d\n", confirma_codigo_produt);
                                        printf("Preco do Produto: %.2f\n", confirma_preco_produt);
                                        printf("Produtos em Estoque: %i\n", confirma_quant_produt);
                                        puts("============================");
                                        getchar();
                                        opcao4 = 0;
                                        break;
                                    }
                                }

                                fclose(produto_file[conta_produt]);

                                conta_produt++;
                                system("pause");
                break;
            case 3:
                system("cls");

                puts("==============================");
                puts(" PRESTADORA DE SERVICOS ");
                puts("==============================");
                puts("  LISTAR TODOS OS PRODUTOS  ");
                puts("------------------------------");
                putchar('\n');
                putchar('\n');
                puts("================================");
                produto_file[conta_produt] = fopen("produtos\\produto.txt", "r");
                while (fscanf(produto_file[conta_produt], "%d %f %i %[^\n]s", &confirma_codigo_produt, &confirma_preco_produt, &confirma_quant_produt, confirma_nome_produt) != EOF)
                {
                    puts("================================");
                    printf("Nome: %s\n", confirma_nome_produt);
                    printf("Preco: %.2f\n", confirma_preco_produt);
                    printf("Quantidade: %i\n", confirma_quant_produt);
                    printf("Codigo: %d\n", confirma_codigo_produt);
                    puts("================================");
                }

                puts("================================");
                system("pause");
                fclose(produto_file[conta_produt]);
                opcao4 = 0;
                break;
            case 4:
                system("cls");
                puts("==============================");
                puts(" PRESTADORA DE SERVICOS ");
                puts("==============================");
                puts("           EXCLUIR PRODUTO             ");
                puts("------------------------------");
                printf("Digite o codigo do produto a ser deletado: \n");
                scanf("%d", &codigo_excluido);

                produto_file[conta_produt] = fopen("produtos\\produto.txt", "r");
                if (produto_file[conta_produt] == NULL)
                {
                    printf("\a\nArquivo nao encontrado!\n");
                    system("pause");
                    opcao4 = 0;
                    break;
                }
                excluir_produto = fopen("produtos\\produto2.txt", "w");
                if (excluir_produto == NULL)
                {
                    printf("\a\nArquivo nao encontrado!\n");
                    system("pause");
                    opcao4 = 0;
                    break;
                }

                copia_arquivo2(produto_file[conta_produt], excluir_produto, codigo_excluido);

                system("cls");
                printf("\n\nProduto excluido com sucesso!\n\n");
                system("pause");
                opcao4 = 0;
                break;
            case 5:
                system("cls");

                opcao = 0;
                break;
            default:
                system("cls");
                printf("\a\nOpcao invalida!\n\n");
                system("pause");
        }
    }
}

void copia_arquivo2(FILE *file1, FILE *file2, int codigo)
{
    char confirma_nome_produt2[31];
    float confirma_preco_produt2;
    int confirma_codigo_produt2;
    int confirma_quant_produt2;

     while (fscanf(file1, "%d %f %i %[^\n]s", &confirma_codigo_produt2, &confirma_preco_produt2, &confirma_quant_produt2, confirma_nome_produt2) != EOF)
    {
        if (codigo != confirma_codigo_produt2)
        {
            fprintf(file2, "%d %.2f %i %s\n", confirma_codigo_produt2, confirma_preco_produt2, confirma_quant_produt2, confirma_nome_produt2);
        }
    }
    fclose(file1);
    fclose(file2);

    remove("produtos\\produto.txt");
    rename("produtos\\produto2.txt", "produtos\\produto.txt");
}

void vendas_produtos(void)
{
    int confirma_compra;
    int verifica = 0;
    char confirma_nome[15];
    char confirma_ultimoNome[15];
    char confirma_dataNasc[11];
    char confirma_cpf[15];
    int confirma_codigo_produt;
    float confirma_preco_produt;
    int confirma_quant_produt;
    char confirma_nome_produt[31];
    int confirma_numero;
    char vendas_cpf[15];
    int vendas_codigo;

    lerBackUp = fopen("BackUp.txt", "r");

    if(lerBackUp == NULL)
    {
        printf("\a Arquivo nao encontrado!\n");
        getchar();
        exit(1);
    }

    fscanf(lerBackUp, "%i", &conta_cliente);

    fclose(lerBackUp);
    opcao5 = 0;

    while(opcao5 == 0)
    {
        puts("==============================");
        puts(" PRESTADORA DE SERVICOS ");
        puts("==============================");
        puts("      VENDAS DE PRODUTOS      ");
        puts("------------------------------");
        putchar('\n');
        puts("Entre com o CPF do cliente: ");
        scanf("%s", vendas_cpf);

        cliente_file[conta_cliente] = fopen("clientes\\client.txt", "r");
        if (cliente_file[conta_cliente] == NULL)
        {
            printf("\a\nArquivo nao encontrado!\n");
            system("pause");
            exit(1);
        }
        produto_file[conta_produt] = fopen("produtos\\produto.txt", "r");
        if (produto_file[conta_produt] == NULL)
        {
            printf("\a\nArquivo nao encontrado!\n");
            system("pause");
            exit(1);
        }
        excluir_produto = fopen("produtos\\produto2.txt", "w");
        if (excluir_produto == NULL)
        {
            printf("\a\nArquivo nao encontrado!\n");
            system("pause");
            exit(1);
        }

        while (fscanf(cliente_file[conta_cliente], "%s %s %s %i %s", confirma_nome, confirma_ultimoNome, confirma_dataNasc, &confirma_numero, confirma_cpf) != EOF || strcmp(vendas_cpf, confirma_cpf) == 0)
        {
            if (strcmp(vendas_cpf, confirma_cpf))
            {
                puts("Informe o codigo do produto: ");
                scanf("%d", &vendas_codigo);
                while (fscanf(produto_file[conta_produt], "%d %f %i %[^\n]s", &confirma_codigo_produt, &confirma_preco_produt, &confirma_quant_produt, confirma_nome_produt) != EOF || verifica == 0)
                {
                    if (confirma_codigo_produt == vendas_codigo)
                    {
                        verifica = 1;
                        system("cls");
                        puts("============================");
                        printf("Nome: %s\n", confirma_nome_produt);
                        printf("Codigo do Produto: %d\n", confirma_codigo_produt);
                        printf("Preco do Produto: %.2f\n", confirma_preco_produt);
                        printf("Produtos em Estoque: %i\n", confirma_quant_produt);
                        puts("============================");
                        puts("Digite '1' para confirmar ou '0' para voltar!");
                        fflush(stdin);
                        scanf("%d", &confirma_compra);
                        switch(confirma_compra)
                        {
                        case 1:
                            system("cls");
                            copia_arquivo3(produto_file[conta_produt], excluir_produto, vendas_codigo);
                            puts("Produto Comprado!");
                            getchar();
                            opcao5 = 1;
                            break;
                        case 2:
                            system("cls");

                            break;

                        }
                    }
                }
            }
        }
    }
    fclose(cliente_file[conta_cliente]);
}
void copia_arquivo3(FILE *file1, FILE *file2, int codigo)
{
    char confirma_nome_produt2[31];
    float confirma_preco_produt2;
    int confirma_codigo_produt2;
    int confirma_quant_produt2;

     while (fscanf(file1, "%d %f %i %[^\n]s", &confirma_codigo_produt2, &confirma_preco_produt2, &confirma_quant_produt2, confirma_nome_produt2) != EOF)
    {
        if (codigo != confirma_codigo_produt2)
        {
            fprintf(file2, "%d %.2f %i %s\n", confirma_codigo_produt2, confirma_preco_produt2, confirma_quant_produt2, confirma_nome_produt2);
        }
        else if (codigo == confirma_codigo_produt2)
        {
            fprintf(file2, "%d %.2f %i %s\n", confirma_codigo_produt2, confirma_preco_produt2, confirma_quant_produt2 = confirma_quant_produt2 - 1, confirma_nome_produt2);
        }
    }
    fclose(file1);
    fclose(file2);

    remove("produtos\\produto.txt");
    rename("produtos\\produto2.txt", "produtos\\produto.txt");
}

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@giu_d     isso serve para editar um arquivo , por exemplo , se você quer deletar alguns dados do arquivo , então você vai pegando os dados do arquivo e compara com o que você quer deletar e se for diferente você coloca esse dado no outro arquivo e se for igual então não coloca pois o que você quer é exatamente excluir esse dado , com isso no final você terá dois arquivos , sendo que um tem todos os dados mas o outro  não terá aqueles dados que você queria deletar , e então você deleta o arquivo de origem e em seguida renomeia o outro com o mesmo nome do primeiro , assim você terá o mesmo arquivo com todos os dados menos aqueles dados que foram excluídos .

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×