Ir ao conteúdo
  • Cadastre-se
vitao1020

C++ Gerar código em txt

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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 .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 então tipo fiz um código aí irei fazer a função fopen(coloco o diretório para salvar o txt) e depois o fprintf (dentro do fprintf coloco todo o código que eu criei?)

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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;

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 eu entendi, só que não tô conseguindo executar, se eu postar o código aqui, teria como fazer esse ajuste pra mim? tipo fazer com que esse codigo seja gerado em txt?

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

conseguiu algo @devair1010 ?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá ok amigo@devair1010

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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;
}

:

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

×