
edu.
Membros-
Total de itens
43 -
Registro em
-
Última visita
Tudo que edu. postou
-
Opa, dei uma olhada, e acabei encontrando o _kbhit, que era exatamente o que eu precisava. Dúvida solucionada.
-
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...
-
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.
-
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.
-
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
-
Era justamente como limpar o buffer que eu precisava, valeu, funcionou corretamente aqui.
-
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.
-
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
-
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.
-
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.
-
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.
-
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++
-
alguém saberia me ajudar? muito obrigado
-
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
-
opa, valeu, obrigado
-
tenho um grupo de 'falas' que podem ocorrer ao inicializar o programa, por exemplo... cout << "Olá, bem vindo"; cout << "Bem-Vindo"; cout << "Bom dia"; ele escolhe aleatoriamente um desses, e mostra na tela como posso fazer isso?
-
quero fazer um programa que ele escolhe aleatoriamente um 'cout' por exemplo, começa o programa, e quero que ele pegue aleatoriamente um 'cout' para começar não sei como isso funciona, mas sei que dá para fazer isso e uma outra pergunta, gostaria de saber, se tem como o programa, a cada certo intervalo de tempo, executar um comando, como atualizar a tela, mesmo que esteja esperando uma entrada, tem jeito de fazer isso? obrigado, edu.
-
só não sei como executar isso em c++, pois creio que seja um comando de C apenas, tentei fazer isso, porem o programa não reconhece
-
estou tendo problema a uma parte do programa, remove("pasta\\arquivo.txt"); isso seria o normal, mas para tornar o programa flexivel, e o usuario poder determinar o nome da pasta, e o nome do arquivo, como eu faria para usar o comando remove, que é de apagar arquivo, usando variaveis variavel pasta variavel nome_de_arquivo remove(pasta"\\"nome_de_arquivo); isto seria incorreto, não sei como eu posso fazer isso em c++ se alguém puder ajudar, agradeço, hehehe
-
hehe, já achei como apaga, valeu a ajuda
-
valeu, eu estava usando errado o mkdir hehe... sobre modificar arquivos, eu já consegui, valeu a ajuda, só preciso descobrir como apaga a pasta agora, hehe
-
opa, falai pessoal, hehe, estou com uma nova duvida, já procurei um pouco sobre isso, porem o que eu achei não funcionou aqui... - gostaria de saber como criar um diretório na mesma pasta que executo meu programa - saber como modificar arquivos que estão dentro dele (tentei abrir um arquivo que estava dentro de uma pasta, e o programa não aceitou) - e caso souberem, como apaga-lo muito obrigado
-
#include <ccc_win.h> int ccc_win_main() { Point p(1, 3); cwin << p << Circle(p, 2.5); return 0; }
-
eu só sei que se usar strcmp não daria certo, pois, ele iria comparar todo o string... eu digito eduardo na busca, e existe Eduardo Souza e Eduardo Machado, e gostaria que aparecessem os dois, caso for strcmp, ele irá comparar eduardo com Eduardo Souza e irá retornar falso, e ai não vai acontecer nada
-
droga, achei que tinha achado, mas não era oque tinha pensado hehe,