Ajuda C [RESOLVIDO]

1. Ajuda C [RESOLVIDO]

leandro bruno teixeira
leandrobrunoo

(usa Ubuntu)

Enviado em 08/08/2009 - 15:04h

oq a de errado com meu codigo, pois estou tentando add um cliente, e nao consigo ?



#include <stdio.h>
#include <stdlib.h>

menu() {
printf("\t\t\tCadastro de Cliente");
printf("\n\n1 - Adicionar 2 - Editar 3 - Consulta 4 - Excluir 5 - Sair\n");

}

// função adicionar

add(){
char n,en;

printf ("Nome:\n");
scanf ("%c",&n);

printf ("Endereço:\n");
scanf ("%c",&en);
}


int main() {

int opc;
char n;

menu();

printf ("Digite uma das opção");
scanf ("%d",&opc);

switch (opc) {
case 1:
add();
break;

}

}


  


2. Re: Ajuda C [RESOLVIDO]

Henrique Cordeiro
SephirothHG

(usa Debian)

Enviado em 08/08/2009 - 19:37h

Você está trabalhando com strings (vetores de caracteres), por isso precisa dar um tamanho para as variáveis 'n' e 'en', assim como se faz com vetores, indicando o número de caracteres que o elemento consegue armazenar.
O outro problema está nos "scanf". Como está trabalhando com strings, precisa utilizar "%s", sem o '&'
Sua função add, poderia ficar assim:

add(){
char n[20], en[50];

printf ("Nome:\n");
scanf ("%s",n);

printf ("Endereco:\n");
scanf ("%s",en);
}

Uma observação: se você digitar uma string com espaços, o que estiver após os espaços, não será capturado.
Para capturar string com espaços, utilize o "scanf" da seguinte forma:

scanf ("%[^\n]",n);

Assim, tudo que for digitado até teclar enter será capturado. Note que é necessário usar o comando "fflush(stdin)" antes de cada "scanf", se quiser utilizar esta opção.
Outra coisa: evite utilizar cedilha e acentos em um programa em C. Eles não são exibidos corretamente.
Dessa forma, sua função ficaria assim:

add(){
char n[20],en[50];

printf ("Nome:\n");
fflush(stdin);
scanf ("%[^\n]",n);

printf ("Endereço:\n");
fflush(stdin);
scanf ("%[^\n]",en);
}

O tamanho das strings n[] e en[] pode ser modificado de acordo com a sua vontade.

Espero ter ajudado.






3. Re: Ajuda C [RESOLVIDO]

Henrique Cordeiro
SephirothHG

(usa Debian)

Enviado em 08/08/2009 - 19:42h

Só mais uma observação:

O seu programa na verdade não está efetuando um cadastro real, mas sim só armazenando o que foi digitado numa string.
Para armazenar permanentemente seria necessário escrever em arquivo ou utilizar um banco de dados.
Acho que você já está ciente disso, mas foi só pra avisar.


4. Muito obg amigo

leandro bruno teixeira
leandrobrunoo

(usa Ubuntu)

Enviado em 08/08/2009 - 19:58h

estou ciente de que preciso de um banco de dados pra grava sim, porem nao sei como fazer ainda, mais sei tambem q pode se grava em um aqruivo txt, tambem nao sei como fazer.
na verdade isso e so um trabalho de um curso de programação q estou fazendo. e so pra montar essa estrutura aqui, caso amigo, vc tenha tempo pra mim ajudar ficaria muito grato a vc, mais ainda claro.



cadastro



nome

endereço, N

bairro

cidade, UF

sexo e informa o sexo escolhido

1 para masculino e 2 para feminino



o sistema deve consultar, excluir,

gravar e alterar.


5. Re: Ajuda C [RESOLVIDO]

Henrique Cordeiro
SephirothHG

(usa Debian)

Enviado em 08/08/2009 - 20:42h

Bom, agora é só você continuá-lo e, quando surgirem as dúvidas é só postar aqui no VOL que o pessoal está sempre pronto a ajudar. :D
Acho que você já pode marcar o tópico como resolvido, né?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts