Jump to content
Fórum Script Brasil

edu.

Membros
  • Posts

    43
  • Joined

  • Last visited

About edu.

edu.'s Achievements

0

Reputation

  1. edu.

    Evento? Como Fazer?

    Opa, dei uma olhada, e acabei encontrando o _kbhit, que era exatamente o que eu precisava. Dúvida solucionada.
  2. edu.

    Evento? Como Fazer?

    Acho que Multithreading é algo muito mais complicado e complexo comparado com o que quero fazer. Estou pensando em fazer isso usando o buffer, ele executa um código, e se ele detectar alguma tecla no buffer, ele analisa, e executa o comando que essa tecla tem que fazer, se não achar nada, prossegue com o código. Seria um método melhor que usar getche(), que interrompe o código e fica esperando até você digitar algo. Procurei muito pouco sobre isso até agora, e se alguém puder dar uma opinião sobre este método, ajudaria muito também. Acho que o que quero fazer com o buffer deve ser possível...
  3. edu.

    Evento? Como Fazer?

    Estou com uma dúvida sobre uma parte do C++. Como fazer que, enquanto ele espera uma entrada, ele executar um outro código, como um for? No meu programa, estou fazendo ele esperar uma entrada, como " variavel = getchar() ", ou apenas um cin >> , e enquanto isso, gostaria que o programa fizesse outras coisas. Acho que o nome disso é evento, quem puder pelo menos passar um bom site (preferência em inglês) com a teoria, e como fazer, eu agradeceria.
  4. edu.

    Units ?

    Também tenho esse problema, quando coloco funcões que necessita de struct, em arquivos separados, o Dec-C++ aqui simplesmente da erros parecido com o seu. Se eu coloco tudo junto, funciona corretamente.
  5. Eu fiquei com essa mesma dúvida uns dias atrás. O que você tem que fazer é o seguinte: Use o getchar apropriado do seu compilador (getch, getchar, ou getche, no meu caso, é o getche() ), que recebe a entrada de apenas um caracter, como no exemplo: char caracter[10]; for (int i = 0; i < 10; i++) { caracter[i] = getche(); } Nesse exemplo, ele vai esperar entrada de 10 caracteres, que você digitar, ou seja, cada vez que você apertar uma tecla, ela vai ser mandada imediatamente para o caracter. Para permitir a entrada só de um, faça uma limitação: char caracter[10]; for (int i = 0; i < 10; i++) { caracter[i] = getche(); // Recebe um dígito if (i == 1) // No segundo dígito... { if(caracter[i] == 0x0d) { // Se for ENTER (0x0d em hexadecimal é enter) cout << "correto"; // Correto! break; // sai do for.. } // se não... else { cout << "errado"; // Errado :( break; // sai do for } } } Nesse código ele sempre vai decidir o que fazer no segundo digito. Depois é só adequar o código ao que você quer e pronto. Qualquer dúvida, só responder. O GRANDE problema de usar essa maneira, é que se você quiser apagar um dígito, ele vai receber a tecla backspace no getche(), e vai contar como um caracter e não como um comando. Para evitar isso, você vai ter que usar if (caracter == 8) // sendo 8, backspace em decimal. E manualmente fazer ele apagar um caracter. Com certeza deve ter outras maneiras de fazer isso, mas essa é a que eu sei. Lendo com mais atenção seu post, você pode fazer isso simplesmente assim: char caracter[10]; char numero; cin >> caracter; // tudo o que você digitar vai pra o caracter numero = caracter[0]; // apenas o primeiro dígito vai para um char numero cout << numero; // imprime char numero
  6. Era justamente como limpar o buffer que eu precisava, valeu, funcionou corretamente aqui.
  7. Na realidade, o que eu gostaria mesmo é poder analisar o string inteiro. Se o cara digita "1 2", quando eu analiso normalmente, ele detecta apenas o numero 1, tirando tudo que vem depois do espaço. Talvez um método melhor seria usando char, mas testei aqui e não consegui nada. Quero que quando ele analise, ele veja que "1 2" != "1", o que não acontece, já que ele pega só a primeira parte. Obs. com getchar não da certo, eu precisaria colocar um getchar para cada "espaço" que o cara coloca. Se ele digita "1 2 1 2 1 2", com o getchar só funcionaria para os primeiros caracteres. Quem puder ajudar, vou agradecer muito, já que esse é o maior problema em todos os programas que faço.
  8. Não sei se é muito complicado fazer isso, mas estou precisando que quando o programa recebe uma entrada, não permitir que possa escrever demais. Vamos supor que o programa pede um numero, 1 2 ou 3, para selecionar um ítem de um menu. Se o cara digita "1 2 3", o programa irá reconhecer o 1, entrará na seção 1, e depois se não me engano, irá ficar no buffer o 2 e 3. E se tiver outra opção de escolha dentro do 1, ele vai querer selecionar a seção 2 dentro da seção 1. Isso estraga o programa, então gostaria de saber se é possível que o programa não permita a entrada de 2 ou mais caractéres. Sei la, você digita um caracter, e quando tentar digitar outro, ele não permite, e não imprime. Porém, em que você possa apertar enter depois, pois com getchar já sei, e não é exatamento o que eu quero. Ou então, algo mais específico, você poder determinar o tamanho de quantos caractéres você vai poder digitar por vez até apertar enter. Por exemplo, "Digite seu nome: ". e só permite 8 letras, mais do que isso ele não permite mais caractéres. obrigado
  9. edu.

    Struct E Função

    Opa! Valeu mesmo. Eu estava justamente precisando saber esse void funcao(Projeto p[10], int qt) eu não estava sabendo como que recebia uma struct em uma função, e nem mesmo como mandar. testei no meu programa, e funcionou corretamente. Obrigado.
  10. edu.

    Struct E Função

    Eu tenho um array de struct. struct Projeto { string var1; string var2; double var3; } projetos[10]; Até ai tudo bem, porém em uma certa hora no programa, quero enviar todos os arrays, de 0 a 10 do struct, para uma determinada função. Não consigo isso, pois na hora de mandar uma variável de struct, é necessário definir o número do array, como o seguinte codigo: função(&projetos[numero].var1) Ou seja, não consigo enviar "toda a struct", com todos os arrays para uma função. Quero que seja possível analisar o struct[0], var1, var2 e var, struct[1], var1, var2, var3 e assim sucessivamente. Quem puder ajudar, dizer como enviar a struct, e como recebe-la na função.
  11. Gostaria que me ajudassem na seguinte situação. Quero fazer um jogo simples, em janela de dos. Um exemplo fácil para entender oque eu quero é o Tetris. Quero que o jogo fique executando um código, no caso, peças caindo, e ao mesmo tempo, esperando uma entrada. Se eu clicar 'A', ou seta, a peça tem que ir para o lado, e por ai vai. E aproveitando o tópico, gostaria de saber se é possivel usar mouse em janela de dos, clicando em algum local, o programa executa algo. Se possível, também me dizer como fazer. Obrigado.
  12. deve ser algum problema que só eu estou tendo aqui, pois denovo não funcionou e ficou sem acontecer nada... estou usando as bibliotecas iostream e conio.h, no dev-c++
  13. alguém saberia me ajudar? muito obrigado
  14. alguém sabe se é possivel atualizar a tela, a cada certo intervalo de tempo? mesmo que o programa esteja executando alguma função, esperando alguma entrada, etc? outra duvida: até agora não consegui fazer funcionar o getch() já peguei varios codigos que me passaram, mas mesmo assim não funciona aqui vai alguns codigos que já testei e deu na mesma #include <iostream> #include <conio.h> int main() { char opcao; opcao = getch(); if (opcao == 'c') printf ("voce apertou a tecla \"c\""); } #include <iostream> #include <conio.h> int main() { char opcao; opcao = getch(); if (opcao == 'c') printf ("voce apertou a tecla \"c\""); getch(); } o programa fica na mesma, mesmo digitando o caracter, ou não, não ocorre nada na tela
  15. opa, valeu, obrigado
×
×
  • Create New...