astrix Posted May 26, 2008 Report Share Posted May 26, 2008 entao e assim ja fiz o meu menu principal,agora nao estou a ver como utilizar aqui o ciclo do...while porque dame geito q ele percorra os cases pelo menos uma vez,e so depois saia se o resultado nao fore o esperado,pois terei q fazer uma validaçao sobre as opçoes caso o utilizador insira uma qualquer tecla q nao as q lhe dei como base ele imita uma mensagem para o utilizador a dar a dita mensagem e a pedir q insira uma das teclas possiveis,sei q sera uma sena basica mas nao estou a ir lá,vou deixar aqui o codigo a ver se alguem me ajuda :hmm void menu() { char opcao; printf(" caixa\n\n"); printf("1 - Recolha de dados\n\n"); printf("2 - Consultar resultados\n\n"); printf("3 - Sair\n\n"); printf("Opçao: "); opcao=getchar(); } int main() { menu(); return 0; } Link to comment Share on other sites More sharing options...
anolsi Posted May 26, 2008 Report Share Posted May 26, 2008 char menu() { char opcao; printf("\tcaixa\n\n"); printf("1 - Recolha de dados\n\n"); printf("2 - Consultar resultados\n\n"); printf("3 - Sair\n\n"); printf("Opçao: "); opcao=getchar(); return (opcao); } int main() { char opc; do{ opc = menu(); } while(opc != '3') return 0; } É isto que queres? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
astrix Posted May 26, 2008 Author Report Share Posted May 26, 2008 pois agora baralhaste-me todo pois tou a fazer isto por funçoes e no main nao tenho mais nada do q o nome das funçoes a chamar e tu neste caso com o codigo como puseste baralhaste-me e nao estou a ver como por isso de acordo com o q estou a fazer se puderes dar mais uma ajudita agradeço ? Link to comment Share on other sites More sharing options...
anolsi Posted May 26, 2008 Report Share Posted May 26, 2008 Por exemplo, depois dentro do ciclo tens um switch int main() { char opc; do{ opc = menu(); switch (opc){ case '1': recolha();break; //Chamas a função de recolha case '2': consulta();break; //Chamas a função de consulta } } while(opc != '3') return 0; } Os nomes das funções são um exemplo. "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
astrix Posted May 26, 2008 Author Report Share Posted May 26, 2008 continuo a nao perceber o codigo como disseste seria qualquer coisa como void menu() { char opc; printf(" caixa\n\n"); printf("1 - Recolha de dados \n\n"); printf("2 - Consultar resultados\n\n"); printf("3 - Sair\n\n"); printf("Opçao: "); opc=getchar(); } int main() { char opc; do{ opc = menu(); switch (opc){ case 1: recolha();break; //Chamas a função de recolha case 2: consulta();break; //Chamas a função de consulta } } while(opc != '3') return 0; } mas se era isto dame bue de errossera q contigo nao esta a dar erros ou nao estas a correr isso ? Link to comment Share on other sites More sharing options...
Baderous Posted May 26, 2008 Report Share Posted May 26, 2008 Será algo assim: #include <stdio.h> int main() { int opcao; do { printf("\tcaixa\n\n"); printf("1 - Recolha de dados\n\n"); printf("2 - Consultar resultados\n\n"); printf("3 - Sair\n\n"); printf("Opcao: "); scanf("%d",&opcao); switch (opcao) { case 1: recolha(); break; case 2: consulta(); break; case 3: break; default: printf("Opcao invalida!\n\n"); } } while (opcao!=3); return 0; } Link to comment Share on other sites More sharing options...
astrix Posted May 26, 2008 Author Report Share Posted May 26, 2008 amigo baderous corre mas agora neste caso eu q estava a fazer por so no main as funçoes e chamava depois por elas fora pois a muitas variaveis q meto em gloval como chamo agora a funçao recolha de dados e consulta de dados ? e aonde ? Link to comment Share on other sites More sharing options...
Baderous Posted May 27, 2008 Report Share Posted May 27, 2008 Não percebi patavina. Link to comment Share on other sites More sharing options...
anolsi Posted May 27, 2008 Report Share Posted May 27, 2008 amigo baderous corre mas agora neste caso eu q estava a fazer por so no main as funçoes e chamava depois por elas fora pois a muitas variaveis q meto em gloval como chamo agora a funçao recolha de dados e consulta de dados ? e aonde ? De certeza que estás a fazer o include do stdio.h? Que erros te dá? Podes colocá-los aqui? "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
Baderous Posted May 27, 2008 Report Share Posted May 27, 2008 anolsi, o problema no código que postaste é que a tua variável opção era um char e depois no switch estavas a usar como se fosse int. Link to comment Share on other sites More sharing options...
anolsi Posted May 27, 2008 Report Share Posted May 27, 2008 anolsi, o problema no código que postaste é que a tua variável opção era um char e depois no switch estavas a usar como se fosse int. Tens razão faltavam as pelicas. Só usei char, porque ele já estava a usar. Mas não vejo mais erros. "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum! Link to comment Share on other sites More sharing options...
astrix Posted May 27, 2008 Author Report Share Posted May 27, 2008 ola amigos resolvi o problema desta maneira q aqui vou por e pos char em vez de inteiro pois se por engano metesse algo diferente de inteiro o programa crachava,por isso ter um char em vez de inteiro void recolha() { } void consulta() { } void menu() { char opcao; do { clrscr(); printf(" caixa\n\n"); printf("1 - Recolha de dados\n\n"); printf("2 - Consultar resultados\n\n"); printf("3 - Sair\n\n"); printf("Opcao: "); opcao=getchar(); fflush(stdin); switch (opcao) { case '1': recolha(); break; case '2': consulta(); break; case '3': break; default: printf("Opcao invalida!!!\n\n"); } } while (opcao!='3'); } int main() { menu(); return 0; } entao agora o q tenho q fazer e o seguinte q como e a primeira vez q vou usar nao esta muito facil a utilizaçao...eu tenho 3 ficheiros e nestes esta variada inf informaçao como nome da casa,quantas pessoas la trabalham,quantas podem tocar nas caixas"registadoras",e um vector onde consta o nome de cada "dono"dessa casa[21]vector com 21 posiçoes onde posso controlar ao fim do ano numa pequena votaçao o melhor dono dessas casas e tirar o vencedor tudo em inteiros agora e assim como fasso isto usando a funçao fwrite para ler logo o ficheiro q esta por exemplo em C:\\Users\\****\\Desktop\\****\\lisboa .dat,para q depois fazer algo tipo soma depois da abertura da informaçao descrita em cima e depois de ir lendo ficheiro a ficheiro ele me ir dando os totais das variaveis,tipo quantas casas tratei quantas pessoas la trabalham no conjunto das casas tratadas e por ai fora...penso q fduiexplicito se alguem quizer dar dai uma ajuda sera bem vinda pois como disse atraz e 1 vez a trabalhar com ficheiros ? Link to comment Share on other sites More sharing options...
astrix Posted June 2, 2008 Author Report Share Posted June 2, 2008 obrig Link to comment Share on other sites More sharing options...
astrix Posted June 2, 2008 Author Report Share Posted June 2, 2008 entao pessoal sera q ninguem me da uma ajuda para ver se acabo isto e se entendo o q esta mal :down: Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now