Ir para conteúdo
Fórum Script Brasil

Aircrash

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Tudo que Aircrash postou

  1. Aircrash

    Ignorando Meu Printf

    Pessoal o erro estava no espaço que o Flávio informou, após corrigir funcionou normalmente. Fressato o delay e pause eu tinha tentado para ver se não era algum erro de input. Lucas ainda não cheguei em ponteiros na faculdade, estou com um livro de C para me auxiliar no programa e cheguei a ler ponteiros, embora eu não tenha entendido o porquê de usá-lo se ele aponta para o endereço de uma variável e eu posso chamar direto a variável ??? mas acho que quando eu tiver mais avançado eu acho função para ele. rsrsrs Quanto ao scanf fiz o teste aqui e ele deu exatamente o mesmo resultado tanto usando o &(address of) e sem o & E mais uma vez obrigado, agora eu já tenho a função de entrada, e a de corpo do meu projeto, agora só falta uma função para print na tela.
  2. Pessoal continuo desenvolvendo o menu do meu primeiro programa e depois de resolver o problema do switch agora me deparei com uma cena inusitada, vou postar o código inteiro aqui e explicar o por quê. #include <conio.h> #include <stdio.h> #include <dos.h> void main (void) { int modo, qtdtempo, qtdvoltas; char nomevermelho[20]; char nomeamarelo[20]; char sim; again:; clrscr(); printf("****************************************************************\n"); printf(" Programa Autorama V0.5\n"); printf("****************************************************************\n"); printf("========================Menu Principal==========================\n"); printf("Digite a opção desejada:\n"); printf("(1) - Jogo por tempo\n"); printf("(2) - Jogo por voltas\n"); printf("(3) - Sair\n\n"); modo = getch(); switch (modo) { case '1': printf("Quanto tempo? (Digite o tempo em minutos, mínimo 1 máximo 59)\n"); scanf("%d",&qtdtempo,"\n"); break; case '2': printf("Quantas voltas? (Mínimo 1 e máximo 99)\n"); scanf("%d",&qtdvoltas,"\n"); break; case '3': printf ("Saindo..."); delay(1000); exit(1); break; default: printf ("\nOpcao incorreta, tente novamente"); delay (1000); goto again; } printf("****************************************************************\n"); printf("=======================Dados dos Jogadores======================\n"); printf("Digite o Nome do piloto do carro vermelho:\n"); scanf("%s ",&nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); scanf("%s",&nomeamarelo); printf("****************************************************************\n"); printf("=======================Verifique os dados=======================\n"); printf("%s pilotará o carro vermelho\n",nomevermelho); printf("%s pilotará o carro amarelo\n",nomeamarelo); if (modo=='1') { printf("Modo de jogo selecionado: Jogo por tempo\n"); printf("Vence quem tiver o maior numero de voltas no final de %d minutos\n",qtdtempo); } else { printf("Modo de jogo selecionado: Jogo por voltas\n"); printf("Vence quem atingir primeiro as %d voltas\n", qtdvoltas); } printf("Dados corretos? (Pressione S para sim e N para Não)\n"); sim=getch(); if (sim=='n') { goto again; } } Bem acontece o seguinte o programa roda bem até chegar aqui printf("Digite o Nome do piloto do carro vermelho:\n"); scanf("%s ",&nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); scanf("%s",&nomeamarelo); Neste momento ele mostra a mensagem do piloto do carro vermelho e pede para eu digitar algo scanf &nomeverlho funciona ok. porém após eu dar enter em vez dele me mostrar o printf nome do poiloto do carro amarelo, ele me pelo que eu digite mais alguma coisa o scanf &nomeamarelo, ai eu digito e só depois ele me mostra o printf(nome do carro amarelo). Se eu trocar o scanf por um gets conforme abaixo printf("Digite o Nome do piloto do carro vermelho:\n"); gets(nomevermelho); printf("\nDigite o Nome do piloto do carro amarelo:\n"); gets(nomeamarelo); Ele me mostra os dois printf e pede para eu digitar alguma coisa eu digito e isto é armazenado na nomeamarelo, porém ele nem sequer pede a do nomevermelho. Já quebrei a cabeça e não consegui entender o problema OBS: Sei que não se deve postar o código inteiro, mas postei porque se eu pegar apenas o pedaço citado e compilar um programa a desgraça funciona normalmente, só não funciona quando fica dentro deste código. Será que alguém me ajuda?
  3. Fressato uma palavra sua matou meu problema "caracter" eu tava levando em consideração que os caracteres 1,2,3 era numerais ou seja inteiros, por isso o scanf funcionava e o getch não. colocando o ' apostrofo entre os números faz com que estes se tornem caracteres "char" epor isso funcionam com o getch() Que recebe um char em vez de um int. To começando a gostar de C, este é apenas parte do trabalho que eu estou fazendo na faculdade para automatizar um autorama (Fazer ele contra voltas e tempos). Grande parte já está solucionada, mas este é o meu primeiro programa e tenho bastante dúvidas, ainda bem que achei este forum. Obrigado pela ajuda de todos.
  4. na verdade eu digitei errado, o comando scanf e o getch eu não uso junto eu coloquei somente como exemplo, mas o código é sem o scanf, quando eu uso sem o scanf ou seja com o getch do jeito que eu escrevi, o switch não funciona, agora se eu usar o scanf (sem o getch) o swtich funciona. Na verdade o que eu coloquei foi o que eu sei (o que é muito pouco) se você tiver uma sugestão para que quando o cliente digitar uma tecla esta fosse armazenada em uma variavel sem a necessidade de pressionar o enter, me informe, por favor, o código que pode suprir esta necessidade.
  5. Pessoal estou iniciando nesta linguagem e gostaria de tirar um dúvida, estou criando um menu do tipo pressione 1 para fazer aquilo, 2 para fazer isso, 3 para acolá e assim por diante. Porém se eu uso o scanf para ler a variável obrigatóriamente o usuária precisa digitar o número seguido de enter. Gostaria do usuário digitasse o número e este já fosse armazenado na variável. tipo o getch(). tentei usar o getch() da seguinte forma variavel = getch() o problema é que quando coloco a varíavel em uma estrutura de escolha a estrutura não consegue "entender" o valor ex: printf("digite 1 para isso, 2 para aquilo"); scanf("%d", &variavel); variavel = getch() switch (variavel) { case 1: faça isso; case 2: faça aquilo; default: faça acola; } Quando uso o código similar a este o swtch sempre cai na função default mesmo quando eu digito 1 se eu uso o scanf ele funciona direitinho, mas me obriga a pressionar o enter e eu não gostaria de ter que esperar o enter. Alguém pode me auxíliar.
×
×
  • Criar Novo...