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.