luiz eduardooo
-
Total de itens
6 -
Registro em
-
Última visita
Posts postados por luiz eduardooo
-
-
Eu criei uma funcao para proibir q o cara coloque um numero num char, a funcao pega o tamanho do char, e ela poem o q foi digitado na variavel, e so deixa continuar ate q o digitado contenha apenas letras. So q ta dando erro na compilacao de incompatibilidade de tipos na linha do y=protecao_var(y); e na linha do return a; que aparece a msg "return-statement". A parte do codigo com os erros:
void insere(celula *i) { void protecao_var(char* a); int protecao_int(int a); int x; printf("Digite o valor: "); x=protecao_int(x); char y[100]; printf("Digite o nome: "); y=protecao_var(y); celula *nova; nova=(celula *)malloc(sizeof(celula)); nova->conteudo = x; nova->nome = y; nova->prox = i->prox; i->prox=nova; } void protecao_var(char* a){ int tamanho,achou=1; while (achou!=0) { scanf ("%[^\n]", &a); tamanho=strlen(a); achou=0; for (int i=0;i<tamanho;i++) if (isdigit(a[i])) achou++; if (achou!=0) printf("Caracteres invalidos, utilize apenas letras.\n"); fflush( stdin ); } return a; }
acho q é essa declaracao da funcao protecao_var, vi milhares de maneiras de declarar um funcao q retorna um char, fiquei testando e nenhuma dava certo.c é mt complicado....
-
consegui resolver o problema, vi otros exemplos de lista, tinha q limpar o buffer do teclado com um comando la "fflush( stdin )", vlw arrk deu uma simplificada no codigo com o toupper().
-
Eu utilizei switch para fazer um menu de uma lista encadeada. So que se eu não digitar nada e der "enter", o programa diz que não é um comando valido (ate ai td bem), mas dps que eu faco isso fica tudo bugado, eu tento digitar um comando valido, o programa fica dizendo que esse comando não existe, ele so volta a funcionar corretamente se eu der um outro "enter" sem digitar nada. Olha o codigo ai:
char q;
do {
scanf("%c", &q);
switch(q) {
case 'a': case 'A': printf("\nComandos:\np Lista todos os contatos da lista.\nb Busca na lista de acordo com o desejado(nome,endereco,...)\n"); printf("i Adciona um novo contato na lista.\nr Remove um contato da lista.\ns Finalizar a execucao do programa.\n"); break;
case 'p': imprima(ini); break;
case 'b': case 'B': busca(ini); break;
case 'i': case 'I': insere(ini); break;
case 'r': case 'R': remove(ini); break;
default: printf("\nO comando '%c' não existe, digite 'a' para a lista de comandos.\n",q);
}
getchar();
} while (q != 's');
}
não sei se deu pra entender bem o q quero dizer, vou tentar exemplificar: O programa inicia, eu aperto enter, aparece "O comando ' ' não existe, digite..." ( ta certo o comando não existe mesmo), depois disso se eu digitar a, aparece "O comando 'a' não existe, digite...", qlq outro comando valido (b,i,r) tb diz que não existe, so volta a funcionar corretamente se eu der um enter sem ter digitado nada.
Tem como concertar isso?? é porque essa lista é um trabalho pra facul, e o prof fica testando tudo, ai vai que o cara da um enter sem digitar nada, ai buga todo meu programa =/
-
Ae Arrk, brigadao pela resposta, entendi o que você disse, já alterei aqui e funcionou =d
-
Opa, comecei a programar em c/c++ a pouco tempo e estou com algumas duvidas.
Por exemplo: eu queria criar uma funcao ajuda, que quando chamada imprimia na tela algo.
eu fiz o seguinte:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int main(){
char q;
void ajuda(void) {
return printf("\nComandos:\npercorrer Lista todos os contatos da lista.\n");
}
do {
scanf("%c", &q);
switch(q) {
case 'a': ajuda;
default: printf("\nO comando '%s' não existe, digite 'a' para a lista de comandos.\n",q);
}
getchar();
} while ((q == 's'));
}
Estou usando o programa Dev-C++, e ele esta dizendo que a linha "void ajuda(void) {" esta errada. O que estou fazendo errado nesse codigo?
Mais outra duvida, vou te q fazer uma lista encadeada (vo ta enchendo o saco da galera mais ae daki a poco), e usei o switch pra pegar o comando que o usuario quer, teria como eu em vez de usar apenas a inicial da letra, usar uma palavra (ex.: o cara tem de digitar 'a' para aparecer a ajuda, teria como fazer para ele digitar 'ajuda' e aparecer a ajuda).
Ter eu sei que tem, porque eu fiz , so q de uma maneira meio trabalhosa:
char c1[7],c2[11],c3[7],c4[8],c5[8],c6[5];
strcpy (c1,"ajuda");
strcpy (c2,"percorrer");
strcpy (c3,"buscar");
strcpy (c4,"inserir");
strcpy (c5,"remover");
strcpy (c6,"sair");
char comando[20];
for (int a=1;a>0;a++) {
scanf("%s",comando);
//ajuda
if (strcmp (comando,c1) == 0) {
printf("\nComandos:\npercorrer Lista todos os contatos da lista.\nbuscar Busca na lista de acordo com o desejado(nome,endereco,...)\ninserir Adciona um novo contato na lista.\nremover Remove um contato da lista.\nsair Finalizar a execucao do programa.\n");
continue;
}
//percorrer
if (strcmp (comando,c2) == 0) {
continue;
}
//buscar
if (strcmp (comando,c3) == 0) {
continue;
}
//inserir
if (strcmp (comando,c4) == 0) {
continue;
}
//remover
if (strcmp (comando,c5) == 0) {
continue;
}
//sair
if (strcmp (comando,c6) == 0) break;
printf("\nO comando '%s' não existe, digite 'ajuda' para a lista de comandos.\n",comando);
}
Tem alguma maneira mais simples de fazer assim??? ou so nessa cavalisse toda ai pra conseguir da maneira que quero?
comando slice
em Outros Programas de Arte e Design
Postado
Estou tendo problemas com o comando slice no autocad (2004).
Ao utiliza-lo, escolho o objeto, seleciono os 3points, ai o autocad pede para escolher um ponto no lado que permanecerá dps do corte ou deixar os dois lados [Keep Booth sides] "Specify a point on desired side of the plane or [keep Both sides]:" , que no caso seria a opcao padrão do autocad por esta entre [] , contudo eu aperto enter e o slice não é executado, so aparece a seguinte msg: "Point or option keyword required." , como se eu não tivesse escolhido uma opcao, ate digitar K, KB, B, Keep, keepbothsides, nada é reconhecido pelo autocad como a opcao de manter os dois lados, mas se eu seleciono um ponto em um dos lados, o comando slice é executado normalmente, apagando o lado q eu não selecionei... O q há de errado??? to puto já com esse autocad, mas faze o q, materia obrigatoria no meu curso da facul...