Ir para conteúdo
Fórum Script Brasil
  • 0

erro na hora de compila no void .....


luiz eduardooo

Pergunta

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?

Editado por luiz eduardooo
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Aew luiz eduardooo, beleza cara?

Cara, o compilador tá acusando erro porque na sua função ajuda() você era pra ignorar o retorno de valor, mas você tá tentando retornar um valor, o valor da printf, que em caso de sucesso retorna a quantidade de caracteres lidos, reveja se essa era mesmo a sua intenção.

Agora, no segundo código, não tem como você colocar um string inteira num case do switch, o que você pode fazer é antes do switch verificar qual string foi digitada e guardar um código pra identificar aquele comando, tipo, ajuda seria 1, remover 2, sair 3, etc., pra depois num switch tratar cada comando. Isso se você quiser mesmo usar um switch.

Espero ter ajudado. =]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...