Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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
Postado (editado)
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!

Editado por RenanMaia
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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
Postado (editado)

:oops: Erro na resposta q pensei em dar

Editado por giu_d
  • Curtir 2

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






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

×