rgcaldas Posted November 29, 2006 at 04:25 PM Report #67595 Posted November 29, 2006 at 04:25 PM Boas Não sei se devo colocar aqui ou não, mas eu tenho um programinha que ando a desenvolver. A ideia é simplesmente fazer as operações de álgebra com vectores (algébricos, não do c). E gostava que dessem a vossa opinião, tipo se alguma coisa podia ser simplificada. E já agora coloco outra questão: - Qual é a forma de transformar as seguintes expressões, que só funcionam em windows, em algo mais standard: - getch() - fflush(stdin) Obrigado desde já
Hipnoted Posted November 29, 2006 at 04:33 PM Report #67599 Posted November 29, 2006 at 04:33 PM Acho que no código não precisas de incluir o fflush(stdin). Eu pelo menos nunca incluo e nunca tive problemas, a não ser quando quero realmente retirar o '\n'. Para mais informações : http://www.portugal-a-programar.pt/index.php?showtopic=3969 - Qual é a forma de transformar as seguintes expressões, que só funcionam em windows, em algo mais standard: Como assim? o getch() podes usar o getchar() que faz o mesmo por exemplo. "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
rgcaldas Posted November 29, 2006 at 04:36 PM Author Report #67602 Posted November 29, 2006 at 04:36 PM mas fico com um problema, que é os "enters" que vem de trás. logo no sitio do getch() tenho de colocar dois getchar() Também não sei se estou utilizar a função certa, o que eu quero com o getch() é pausar o programa.
Hipnoted Posted November 29, 2006 at 04:38 PM Report #67605 Posted November 29, 2006 at 04:38 PM mas fico com um problema, que é os "enters" que vem de trás. logo no sitio do getch() tenho de colocar dois getchar() Também não sei se estou utilizar a função certa, o que eu quero com o getch() é pausar o programa. Fazes o seguinte: ... getchar(); printf("\n\nPrima tecla para continuar..."); getchar(); ... "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
rgcaldas Posted November 29, 2006 at 04:42 PM Author Report #67609 Posted November 29, 2006 at 04:42 PM Fazes o seguinte: ... getchar(); printf("\n\nPrima tecla para continuar..."); getchar(); ... Isto é mais ou menos aquilo que eu tenho na versão linux. O que eu queria saber é se não há alguma forma de simplificar isto. Se calhar tem a ver com a função fflush(stdin) que não consigo que funcione no linux, não limpa o buffer do teclado.
Hipnoted Posted November 29, 2006 at 04:46 PM Report #67611 Posted November 29, 2006 at 04:46 PM Isto é mais ou menos aquilo que eu tenho. O que eu queria saber é se não há alguma forma de simplificar isto. Se calhar tem a ver com a função fflush(stdin) que não consigo que funcione no linux, não limpa o buffer do teclado. Segundo alguns users que postaram naquele tópico que te indiquei acima, o fflush(stdin) não funciona em Linux. 🙂 É o que te disse, eu nunca uso isso. Outra forma é substituires o '\n' por um '\0' no final da frase ou palavra. Exemplo: scanf("%s", buffer); int len = strlen(buffer); buffer[len-1] = '\0'; 😉 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Rui Carlos Posted November 29, 2006 at 04:58 PM Report #67616 Posted November 29, 2006 at 04:58 PM para limpar o buffer de entrada (remover o \n e outros caracteres que lá estejam) eu normalmente uso a seguinte linha while(getchar()!='\n'); que elimina lê todos os caracteres do buffer até aparecer um \n. Rui Carlos Gonçalves
rgcaldas Posted November 29, 2006 at 06:27 PM Author Report #67649 Posted November 29, 2006 at 06:27 PM Segundo alguns users que postaram naquele tópico que te indiquei acima, o fflush(stdin) não funciona em Linux. 😉 Desculpa não tinha visto esta parte da tua resposta. Já fui ler o post ? Vou fazer uns testes Já agora. Alguém viu o codigo que deixei. O que é que acharam??
Hipnoted Posted November 29, 2006 at 06:35 PM Report #67653 Posted November 29, 2006 at 06:35 PM Só vi por alto ma spareceu-me estar bem. 😉 "Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"
Rui Carlos Posted November 29, 2006 at 06:42 PM Report #67657 Posted November 29, 2006 at 06:42 PM Já agora. Alguém viu o codigo que deixei. O que é que acharam?? -penso que também não existe o 'clrscr()' em linux (podes usar o 'system("clear");'...) -não percebi a necessidade dos vectores na função 'main', pareceu-me que nunca eram usados -algumas da operações podiam ser feitas com ciclos, ficava mais fácil adaptar o código para vectores maiores (ou mesmo generalizar para vectores de qualquer dimensão). -a forma como abordas o problema se calhar não é a melhor, mas isto é um ponto que vais melhorar com a experiência... Rui Carlos Gonçalves
rgcaldas Posted November 29, 2006 at 08:03 PM Author Report #67686 Posted November 29, 2006 at 08:03 PM -penso que também não existe o 'clrscr()' em linux (podes usar o 'system("clear");'...) Pois essa era outra, que me esqueci, se colocar system("clear") tenho o mesmo problema mas com o windows -não percebi a necessidade dos vectores na função 'main', pareceu-me que nunca eram usados Estou a alterar o codigo, de maneira a ter os vectores na main e passa-los para as funções como argumentos. -algumas da operações podiam ser feitas com ciclos, ficava mais fácil adaptar o código para vectores maiores (ou mesmo generalizar para vectores de qualquer dimensão). Vou tentar ? Mas os vectores à partida não vão mudar de dimensão, pelo menos a ideia do programa é só fazer as operações em R3 -a forma como abordas o problema se calhar não é a melhor, mas isto é um ponto que vais melhorar com a experiência... Espero que sim
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