Ir ao conteúdo

Posts recomendados

Postado

Boa noite, alguém conhecedor no assunto para me ajudar como gero um código feito em C++? pesquisei e vi como se faz esse processo de gerar arquivo txt mas só encontro como gerar o arquivo txt com mensagens, tipo gerar o txt escrito "Olá, mundo" mas preciso saber como gerar o txt com um código tipo " include <stdio.h> include <stdlib.h> int main ()" e por aí vai

  • Obrigado 1
Postado

@vitao1020    para gerar esses códigos você precisa digitar eles e a função fopen gera um arquivo e o comando fprintf ou fwrite grava no arquivo o que você digitar , então você pega esses dados , linha por linha , como sendo string e depois grava no arquivo .

Postado

@vitao1020    você pode pegar uma linha de código de cada vez e gravar no arquivo , então você coloca um loop   do / while  e dentro dele você usa o comando gets para pegar tudo que está na mesma linha , e isso seria assim  :

#include <stdio.h>
#include <string.h>
int main(){
    FILE *arq;
    char x,variavel[80];
    arq=fopen("nome_arquivo.txt","r");
    if(arq==NULL)
    arq=fopen("nome_arquivo.tx","w");
    fclose(arq);
    arq=fopen("nome_arquivo.txt","a+");
    do{
        printf("uma linha de codigo ");
        fflush(stdin);
        gets(variavel);
        fprintf(arq, "%s\n" , variavel);
        printf("Quer inserir outra linha  S/N ");
        fflush(stdin);
        scanf("%c",&x);
    }while(x !='n');
    fclose(arq);
    return 0;

}

 

Postado

No Código onde tem a função que criei do listar, queria colocar para que quando chamasse essa função de listar ele gerasse essa listagem em txt

 

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <conio.h>

struct tipo_novo
{
    int cod;
    char nome[10];
    char end[30];
    char tel[10];    
    float fat;
    int ativo;
    int vazio;
};
int cadastrar (  tipo_novo cliente[], int aux)
{

    //for(int i = 0; i < 2; i++)
    //{
    printf("informe o codigo:  \n");
    scanf("%d", &cliente[aux].cod);


    printf("informe o nome:  \n");
    scanf("%s", &cliente[aux].nome);
    fflush(stdin);

    printf("informe o endereco;  \n");
    scanf("%s", &cliente[aux].end);
    fflush(stdin);

    printf("informe o telefone:  \n");
    scanf("%s", &cliente[aux].tel);
    fflush(stdin);

    printf("informe o faturamento: \n");
    scanf("%f", &cliente[aux].fat);
    fflush(stdin);
    cliente[aux].ativo = 1;
}
int listar (tipo_novo cliente[], int aux)
{

    for (int i = 0; i < aux; i++)

    {

        if(cliente.ativo == 1)
        {


            printf("\n");
            printf("Codigo: %d \n", cliente.cod);
            printf("Nome: %s \n", cliente.nome);
            printf("Telefone: %s \n", cliente.tel);
            printf("Faturamento: %f \n", cliente.fat);
            printf(" \n *********************************************** \n");
            printf("\n");
        }
    }

}
int consultar(tipo_novo cliente[], int aux)
{

    int cont = 0;
    int codconsulta;
    int pos = -1;

    printf("\nEntre com o codigo\n");
    scanf("%d", &codconsulta);
    fflush(stdin);
    system("cls");

    while ( cont <= aux )
    {
        if (cliente[cont].cod == codconsulta)
        {

            pos = cont;
            printf("\nCodigo: %d \nNome: %s\nEndereco: %s\nTelefone: %s\n\n", cliente[cont].cod, cliente[cont].nome, cliente[cont].end, cliente[cont].tel, cliente[cont].fat);

            break;


        }

        cont++;

    }

    return pos;

}
int excluir (tipo_novo cliente[], int aux)
{

    int cont = 0;
    int codexcluir;
    int pos = -1;

    printf("\nEntre com o codigo para excluir\n");
    scanf("%d", &codexcluir);
    fflush(stdin);
    system("cls");

    while ( cont <= aux )
    {
        if (cliente[cont].cod == codexcluir)
        {

            pos = cont;

            cliente[cont].ativo = 0;

            break;


        }

        cont++;

    }

    return pos;

}

void alterar(tipo_novo cliente[], int aux)
{
    int alt;
    printf("\n Insira o codigo \n");
    scanf("%d", &alt);

for (int i = 0; i < aux; i++)
{
    
    if (cliente[aux].cod==alt)
    {
        printf("\n");
            printf("Insira o novo codigo: \n");
            scanf("%d", &cliente.cod);
            printf("Insira o novo nome:  \n");
            scanf("%s", &cliente.nome);
            printf("Insira o novo telefone: \n");
            scanf("%s", &cliente.tel);
            printf("Insira o novo faturamento: \n");
            scanf("%f", &cliente.fat);
            printf(" \n *********************************************** \n");
            printf("\n");
        
        
    }
    
    
}

}

void imprimir (tipo_novo cliente[], int aux)
{
    
    FILE *arquivo;
    
    
    arquivo = fopen("lista.txt","w");
    
    
    
}

main()
{
    tipo_novo cliente[100];
    int opc, x;
    int aux = 0;

    while (opc != 6)
    {
        printf("1 - Cadastrar cliente \n");
        printf("2 - Listar cliente \n");
        printf("3 - Excluir cliente \n");
        printf("4 - Consultar cliente \n");
        printf("5 - Imprimir cliente \n");
        printf("6 - Alterar \n");
        printf("7 - Sair \n");


        scanf("%d", &opc);

        if (opc == 1)
        {
            printf("voce selecionou - Cadastrar cliente \n");
            cadastrar(cliente, aux);
            aux++;

            system("cls");

        }

       //FUNÇÃO DE LISTAR (TRANSFORMAR EM TXT) 

if(opc == 2)
        {
            printf("voce selecionou - Listar cliente \n");      
            listar(cliente, aux);


        }
        if(opc == 3)
        {
            printf("voce selecionou - Excluir cliente \n");
            x = consultar(cliente, aux);
            if (x == -1)
            {
                printf("Codigo nao encontrado");
            }
            if(x != -1)
            {
                excluir(cliente, aux);
            }
            system("cls");


        }
        if(opc == 5)
        {
            printf("voce selecionou - Imprimir cliente \n");
            system("cls");
        }

        if(opc == 4)
        {
            printf("voce selecionou - Consultar cliente \n");
            x = consultar(cliente, aux);
            printf("%d", x);
            if (x == -1)
            {
                printf("Codigo nao encontrado");
            }

        }
        if(opc == 7)
        {
            printf("SAIR");

        }
        if (opc == 6)
        {
            printf("voce selecionou - Alterar");
        alterar(cliente, aux);
        }

    }


}
 

  • Obrigado 1
Postado

@vitao1020      seu código está bom , então acrescentei as funções de gravar no arquivo e de recuperar os dados que foram salvos anteriormente e outra para inserir códigos do jeito que você disse , então seu código com algumas modificações pode ser assim  :

#include <stdio.h>
#include <stdlib.h>
/*#include <iostream>*/
/*#include <fstream>*/
#include <conio.h>
#include <windows.h>
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}

int j;
struct tipo_novo{
    int   cod;
    char  nome[10];
    char  end[30];
    char  tel[10];
    float fat;
    int   ativo;
    int   vazio;
};
struct tipo_novo cliente[100];
FILE *arquivo;
int ler_arquivo(){
    /*int j=0;*/
    arquivo=fopen("arquivo_nao_binario.txt","r");
    if(arquivo==NULL){printf("nulo\n");return 0;}
    while(fscanf(arquivo,"%d",&cliente[j].cod  )!= EOF &&
          fscanf(arquivo,"%s",&cliente[j].nome )!= EOF &&
          fscanf(arquivo,"%s",&cliente[j].end  )!= EOF &&
          fscanf(arquivo,"%s",&cliente[j].tel  )!= EOF &&
          fscanf(arquivo,"%f",&cliente[j].fat  )!= EOF &&
          fscanf(arquivo,"%d",&cliente[j].ativo)!= EOF ){

          textcolor(14,0);
          printf("codigo -----= %d\n"  ,cliente[j].cod   );
          printf("nome -------= %s\n"  ,cliente[j].nome  );
          printf("endereco ---= %s\n"  ,cliente[j].end   );
          printf("telefone ---= %s\n"  ,cliente[j].tel   );
          printf("faturamento = %.2f\n",cliente[j].fat   );
          printf("ativo ------= %d\n\n",cliente[j].ativo );
          getch();

          j++;
    }
    fclose(arquivo);
    return j;
}

void gravar_arquivo(struct tipo_novo cliente[],int aux){
    FILE *arq;
    arq=fopen("arquivo_nao_binario.txt","r");
    if(arq==NULL)
        arq=fopen("arquivo_nao_binario.txt","w");
    fclose(arq);
    arq=fopen("arquivo_nao_binario.txt","w");
    printf("valor de aux %d\n",aux);
    for(j=0;j<aux;j++){
        fprintf(arq, "%d " , cliente[j].cod   );
        fprintf(arq, "%s " , cliente[j].nome  );
        fprintf(arq, "%s " , cliente[j].end   );
        fprintf(arq, "%s " , cliente[j].tel   );
        fprintf(arq, "%.2f ", cliente[j].fat   );
        fprintf(arq, "%d\n", cliente[j].ativo );
    }
    fclose(arq);
}
int cadastrar ( struct tipo_novo cliente[], int aux){
    textcolor(15,0);
    printf("informe o codigo ------: ");
    fflush(stdin);
    textcolor(11,0);
    scanf("%d", &cliente[aux].cod);

    textcolor(15,0);
    printf("informe o nome --------: ");
    fflush(stdin);
    textcolor(11,0);
    scanf("%s", &cliente[aux].nome);
    fflush(stdin);

    textcolor(15,0);
    printf("informe o endereco ----; ");
    fflush(stdin);
    textcolor(11,0);
    scanf("%s", &cliente[aux].end);
    fflush(stdin);

    textcolor(15,0);
    printf("informe o telefone ----: ");
    fflush(stdin);
    textcolor(11,0);
    scanf("%s", &cliente[aux].tel);
    fflush(stdin);

    textcolor(15,0);
    printf("informe o faturamento -: ");
    fflush(stdin);
    textcolor(11,0);
    scanf("%f", &cliente[aux].fat);
    cliente[aux].ativo = 1;
}
int listar (struct tipo_novo cliente[], int aux){
    textcolor(12,15);
    for (int i = 0; i < aux; i++){
        if(cliente[i].ativo == 1){
            printf("\n");
            printf(" Codigo ------: %d   \n", cliente[i].cod   );
            printf(" Nome --------: %s   \n", cliente[i].nome  );
            printf(" endereco ----: %s   \n", cliente[i].end   );
            printf(" Telefone ----: %s   \n", cliente[i].tel   );
            printf(" Faturamento -: %.2f \n", cliente[i].fat   );
            printf(" atividade ---: %d   \n", cliente[i].ativo );
            printf(" \n *********************************************** \n\n");
        }
    }
    printf("\n");
    char var[80];
    arquivo = fopen("nome_arquivo.txt","a+");
    if(arquivo==NULL)
    arquivo = fopen("nome_arquivo.txt","w");
    fclose(arquivo);
    arquivo = fopen("nome_arquivo.txt","a+");
    textcolor(11,0);
    while( fgets(var, sizeof(var), arquivo ) != NULL )
        printf("%s",var);
	fclose(arquivo);
	printf("\n\n    tecle\n");
	getch();
}
int consultar(struct tipo_novo cliente[], int aux){
    int cont = 0;
    int codconsulta;
    int pos = -1;

    printf("\nEntre com o codigo\n");
    scanf("%d", &codconsulta);
    fflush(stdin);
    system("cls");
    textcolor(7,0);
    while ( cont <= aux ){
        if (cliente[cont].cod == codconsulta){
            pos = cont;
            printf("\nCodigo: %d \nNome: %s\nEndereco: %s\nTelefone: %s\n\n",
            cliente[cont].cod, cliente[cont].nome, cliente[cont].end,
            cliente[cont].tel, cliente[cont].fat);
            break;
        }
        cont++;
    }
    return pos;
}
int excluir (struct tipo_novo cliente[], int aux){
    int cont = 0;
    int codexcluir;
    int pos = -1;

    textcolor(15,0);
    printf("\nEntre com o codigo para excluir\n");
    scanf("%d", &codexcluir);
    fflush(stdin);
    system("cls");

    while ( cont <= aux ){
        if (cliente[cont].cod == codexcluir){
            pos = cont;
            cliente[cont].ativo = 0;
            break;
        }
        cont++;
    }
    return pos;
}

void alterar(struct tipo_novo cliente[], int aux){
    int alt;
    printf("\n Insira o codigo \n");
    scanf("%d", &alt);
    textcolor(15,0);
    for (int i = 0; i < aux; i++){
        if (cliente[aux].cod==alt){
            printf("\n");
            printf("o novo codigo ------: ");
            textcolor(11,0);
            scanf("%d", &cliente[i].cod);
            textcolor(15,0);
            printf("o novo nome --------: ");
            textcolor(11,0);
            scanf("%s", &cliente[i].nome);
            textcolor(15,0);
            printf("o novo telefone ----: ");
            textcolor(11,0);
            scanf("%s", &cliente[i].tel);
            textcolor(15,0);
            printf("o novo faturamento -: ");
            textcolor(11,0);
            scanf("%f", &cliente[i].fat);
            textcolor(10,0);
            printf(" \n *********************************************** \n");
            printf("\n");
        }
    }
}

int imprimir (struct tipo_novo cliente[], int aux){
    char var[80];
    arquivo = fopen("lista.txt","a+");
    if(arquivo==NULL)return 0;
    fclose(arquivo);
    textcolor(0,15);
    arquivo = fopen("lista.txt","a+");/* abre p/ leitura e escrita no final do arquivo */
    while( fgets(var, sizeof(var), arquivo ) != NULL )
        printf(" %s ",var);
	fclose(arquivo);
	printf("\n\n    tecle\n");
	getch();
}
void insere_codigos(){
    FILE *arq;
    char x,variavel[80];
    arq=fopen("nome_arquivo.txt","r");
    if(arq==NULL)
        arq=fopen("nome_arquivo.tx","w");
    fclose(arq);
    arq=fopen("nome_arquivo.txt","a+");
    do{
        textcolor(14,0);
        printf("uma linha de codigo ");
        fflush(stdin);
        textcolor(11,0);
        gets(variavel);
        fprintf(arq, "%s\n" , variavel);
        textcolor(14,0);
        printf("Quer inserir outra linha  S/N ");
        fflush(stdin);
        textcolor(11,0);
        scanf("%c",&x);
    }while(x !='n');
    fclose(arq);
}
int main(){
    int opc, x,j=0,aux;
    for(x=0;x<100;x++)
        cliente[x].ativo=0;
    aux = ler_arquivo();
    while (opc != 6){
        system("cls");
        textcolor(14,0);
        printf("0 - Gravar Codigo\n"    );
        printf("1 - Cadastrar cliente\n");
        printf("2 - Listar cliente\n"   );
        printf("3 - Excluir cliente\n"  );
        printf("4 - Consultar cliente\n");
        printf("5 - Imprimir cliente\n" );
        printf("6 - Alterar\n"          );
        printf("7 - Sair do programa\n" );

        scanf("%d", &opc);
        textcolor(15,0);

        if(opc == 0){
            printf("voce selecionou gravar codigos\n");
            insere_codigos(cliente);
        }
        else{
            if(opc == 1){
                printf("voce selecionou - Cadastrar cliente \n");
                cadastrar(cliente, aux);
                aux++;
            }
            //FUNÇÃO DE LISTAR (TRANSFORMAR EM TXT)
            /* ele vai imprimir o que estiver gravado no arquivo */
            else{
                if(opc == 2){
                    printf("voce selecionou - Listar cliente \n");
                    listar(cliente, aux);
                }
                else{
                    if(opc == 3){
                        printf("voce selecionou - Excluir cliente \n");
                        x = consultar(cliente, aux);
                        if (x == -1){
                            printf("Codigo nao encontrado");
                        }else{
                            excluir(cliente, aux);
                        }
                    }
                    else{
                        if(opc == 5){
                            printf("voce selecionou - Imprimir cliente \n");
                            imprimir(cliente,aux);
                        }
                        else{
                            if(opc == 4){
                                printf("voce selecionou - Consultar cliente \n");
                                x = consultar(cliente, aux);
                                printf("%d", x);
                                if (x == -1){
                                    printf("Codigo nao encontrado");
                                }
                            }
                            else{
                                if(opc == 7){
                                    printf("\nSAINDO . . . !\n\n");
                                    gravar_arquivo(cliente,aux);
                                    textcolor(7,0);
                                    exit(0);
                                }
                                else{
                                    if (opc == 6){
                                        printf("voce selecionou - Alterar");
                                        alterar(cliente, aux);
                                    }
                                    else{
                                        printf("Op%c%co inv%clida . . . !      Tecle",135,198,160);
                                        getch();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return 0;
}

:

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!