Ir ao conteúdo
  • Cadastre-se

C++ Problema no programa converter para char


Posts recomendados

Boa tarde pessoal,

Seguinte, estou com um problema no meu programa em que eu estou tentando mudar um char colocando caracteres e números (não sei se posso fazer isso, sou iniciante) e quando eu executo o programa ele roda normalmente, mas na hora de imprimir a string na tela, ele trava, eu estou utilizando %c para imprimir na tela, utilizando o %s ele me fala que não se pode converter do char para int( estou tentando atribuir o valor AAA2020 para o char mostrarcarroalugado;), segue abaixo o programa, ele não esta completo e como estou na correria, me desculpem a má indentação.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <string.h>
int main()
{
    
    int carroalugado, diascarro, alugarconsultar,idosoparceiro,continuar, dia, devolucao;
    double tarifacarro;
    int parceiro,idoso;
    char nome[256];
    char data[9];
    char mostrarcarroalugado[256]; //  Quero mostrar essa variavel na tela.
    char hora[9];
    char c[3];/*um a mais para o caractere nulo  \0*/
    
    setlocale(LC_ALL,"");
     _strdate(data); /*isso pega a data do sistema*/ // não usei ainda
    _strtime(hora); /*isso pega a hora do sistema*/ // não usei ainda
      
    
    printf("=================================================\n========== Bem-vindo a Legal Rent a Car =========\n=================================================");

    do{
        
    printf("\n\n O que voce deseja fazer ? \n\n 1- Alugar um carro\n 2- Consultar dados de carro alugado\n 3- Sair\n\n");
    
    scanf("%d",&alugarconsultar);
    
    if(alugarconsultar==1){
        printf("escreva seu nome para se identificar:");
        gets(nome);
        gets(nome);
        printf("qual Carro voce deseja alugar? \n\n Carros disponiveis no momento: \n\n 1-Fox AAA2020 diaria = R$10,00\n");
        scanf("%d",&carroalugado);
        if(carroalugado == 1){
            mostrarcarroalugado ='FoxAAA2020';     //   <-- aqui eu estou tentando atribuir o nome do carro(não sei se é o certo)
            printf("Por quantos dias voce deseja alugar o veiculo?\n");
            scanf("%d",&diascarro);
            printf("voce e de alguma empresa parceira ou idoso?\n\n 1-Parceiro\n2-Idoso\n3- Nenhum");
            scanf("%d",&idosoparceiro);
        if(idosoparceiro==1){
            tarifacarro = (10.00*5)/100;
            parceiro = 10.00 - tarifacarro;
            printf("desconto para parceiro = %d",parceiro );
        }
        if(idosoparceiro==2){
            tarifacarro = (10.00*5)/100;
            idoso = (10.00*10)/100;
            printf("desconto para idoso = %d\n",idoso );
        }
        if(idosoparceiro==3){
            printf("Sem Descontos \n\n");
        }
        printf("==========Nota Fiscal==========\n\n Nome: %s \n carro alugado: %c\n Preco a ser pago:R$%d \n Data do Recebimento do veiculo: \n ==============================\n\n\n",nome, mostrarcarroalugado); // tento imprimir ela aqui, mas ela saiu como 0(zero), ou alguma letra aleatória quando altero o codigo.
        printf("deseja continuar a navegar?");
        scanf("%d",&continuar);
        }
        }
    }while(continuar == 1);
    
    
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Murillo Pereira da Silva    para você carregar um char com caracteres, entre aspas duplas,  você pode usar a função strcpy junto com a biblioteca string.h ,  ajeitei algumas linhas para dar uma melhor aparência no texto ,  mas para você fazer muitos cadastros é melhor você usar vetores ou matrizes,  pois do jeito que está você só consegue cadastrar um cliente :   com vetores  você usaria assim :

char nome[100][256];

e na hora de cadastrar você colocaria assim :

printf("escreva seu nome para se identificar: ");
fflush(stdin);
gets(nome[j]);
j++;

sendo que é uma variável para controlar a quantidade de clientes cadastrados , então ele começaria de zero e iria aumentando a cada cliente que for cadastrado,     aqui está seu código com algumas modificações :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
#include <string.h>
int main(){
    int carroalugado, diascarro, alugarconsultar,idosoparceiro,continuar=1, dia, devolucao;
    float tarifacarro,parceiro;
    int idoso;
    char nome[256];
    char data[9];
    char mostrarcarroalugado[256]; /*//  Quero mostrar essa variavel na tela.*/
    char hora[9];
    char c[3];/*um a mais para o caractere nulo  \0*/
    setlocale(LC_ALL,"");
     _strdate(data); /*isso pega a data do sistema*//* // não usei ainda*/
    _strtime(hora);  /*isso pega a hora do sistema*//* // não usei ainda*/
    printf("a data é %s\n",data);/*o caractere 0 e 1 eh o mes - o 2 eh a barra - o 3 e 4 eh o dia */
                                /* o 5 eh a outra barra*/
                                /* o 6 e 7 eh o ano */
    printf("a hora é %s\n",hora);
    printf("=================================================\n");
    printf("========== Bem-vindo a Legal Rent a Car =========\n");
    printf("=================================================");
    do{
        printf("\n\n O que voce deseja fazer ? \n\n");
        printf(" 1- Alugar um carro\n");
        printf(" 2- Consultar dados de carro alugado\n");
        printf(" 3- Sair\n\n");
        scanf("%d",&alugarconsultar);
        if(alugarconsultar==3)return 0;
        if(alugarconsultar==1){
            printf("escreva seu nome para se identificar: ");
            fflush(stdin);
            /*gets(nome);*/
            gets(nome);
            printf("qual Carro voce deseja alugar? \n\n");
            printf(" Carros disponiveis no momento: \n\n");
            printf(" 1-Fox AAA2020 diaria = R$10,00 ");
            scanf("%d",&carroalugado);
            if(carroalugado == 1){
                strcpy(mostrarcarroalugado,"FoxAAA2020");/*//   <-- aqui eu estou tentando atribuir o nome do carro*/
                                                     /*(não sei se é o certo)*/
                printf("Por quantos dias voce deseja alugar o veiculo? ");
                scanf("%d",&diascarro);
                printf("voce e de alguma empresa parceira ou idoso?\n\n 1-Parceiro\n 2-Idoso\n 3- Nenhum ");
                scanf("%d",&idosoparceiro);
                if(idosoparceiro==1){
                    tarifacarro = (10.00*5)/100;
                    parceiro = 10.00 - tarifacarro;
                    printf("desconto para parceiro = %.2f\n\n",parceiro );
                }
                else{
                    if(idosoparceiro==2){
                        tarifacarro = (10.00*5)/100;
                        idoso = (10.00*10)/100;
                        printf("desconto para idoso = %d\n\n",idoso );
                    }
                    else{
                        if(idosoparceiro==3){
                            printf("Sem Descontos \n\n");
                        }
                    }
                }
                printf("==========Nota Fiscal==========\n\n");
                printf(" Nome: %s \n carro alugado: %s\n Preco a ser pago: R$%.2f \n",nome,mostrarcarroalugado,tarifacarro);
                printf(" Data do Recebimento do veiculo: \n ==============================\n\n\n"); /*// tento imprimir ela */
                /*aqui, mas ela saiu como 0(zero), ou alguma letra aleatória quando altero o codigo.*/
            }
        }
        printf("deseja continuar a navegar?  1- sim  2- nao ");
        scanf("%d",&continuar);
    }while(continuar == 1);
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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