Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cadastrar com Espaço em C

Pessoal, tudo bem com vocês? Poderiam me ajudar em uma questão?

Eu estou fazendo um cadastro de cliente e preciso gravar os dados em um arquivo txt, até ai tudo bem, consegui fazer, porém se eu colocar ESPACO nos nomes na hora de cadastro o programa da pau.

Como proceder?

Obs: A pagina principal do programa é em outro arquivo, eu uso essa só para dados do cliente.

void GravarClientes()
{
    printf("\n\nDIGITE OS DADOS PARA REGISTRO\n\n");

        ColocarEspacos(cliente_nome);

        printf("Nome......: ");
        scanf("%s", cliente_nome);
        getchar();

        printf("Rg........: ");
        scanf("%d", &cliente_rg);

        printf("Cpf.......: ");
        scanf("%d", &cliente_cpf);

        printf("Telefone..: ");
        scanf("%d", &cliente_telefone);
        getchar();

        printf("Endereco..: ");
        scanf("%s", cliente_endereco);    

        printf("Bairro....: ");
        scanf("%s", cliente_bairro);
        getchar();

        printf("Cep.......: ");
        scanf("%d", &cliente_cep);

        getchar();

arquivo_cliente = fopen("cadastroCliente.txt","a+"); 
fprintf(arquivo_cliente,"%s %d %d %d %s %s %d", cliente_nome, cliente_rg, cliente_cpf, cliente_telefone ,cliente_endereco, cliente_bairro, cliente_cep); 
fclose(arquivo_cliente); 

    printf("\n************************************\n");
    printf("* REGISTRO ADICIONADO COM SUCESSO! *\n");
    printf("************************************\n");

}
void menuclientes()
{

    printf("*************************\n");
    printf("OPÇÕES PARA OS CLIENTES\n");
    printf("*************************\n");
    printf("1) INCLUIR CLIENTE      *\n");
    printf("2) EXCLUIR CLIENTE      *\n");
    printf("3) LISTAR  CLIENTE      *\n");
    printf("4) VOLTAR               *\n");
    printf("*************************\n");
    printf("\nDigite a opção desejada: ");
    scanf("%i", &opcao);
    getchar();
}

void cadastroclientes()
{
    while(opcao!=4)
    {
        system("cls");

        menuclientes();

        switch(opcao)
        {
            case 1: // incluir

                GravarClientes();

            break;

            case 2: //excluir

            printf("Teste");

            break;

            case 3: // listar

            printf("Teste");

            break;

            case 4: // sair

            system("cls");
            menuprincipal();

            break;


            default:
              printf("Opção inválida!\n\n");

        }
        printf("\nPressione <ENTER> para continuar...");
        getchar();
    }

}
1 resposta
solução!

Olá Mateus, tudo bem ? Espero que sim.

Desculpa pela demora no retorno.

Testei o gets e ele resolve esse problema, lendo até o Enter.

/* gets example */
#include <stdio.h>

int main()
{
  char string [256];
  printf ("Insert your full address: ");
  gets (string);     // warning: unsafe (see fgets instead)
  printf ("Your address is: %s\n",string);
  return 0;
}

Aplique ele no seu projeto e me diga se resolve, qualquer duvida não hesite em perguntar.

Bons Estudos.