
Ruyfreis
Membros-
Total de itens
108 -
Registro em
-
Última visita
Tudo que Ruyfreis postou
-
é... Só gostaria de entender quando uma pessoa deixa de ser aluno para virar professor, pois todo professor por melhor se seja sempre também será aluno. E não acredito que deva ser criticado tão rudemente por algum suposto erro. Acredito que todos tem seus fatos para acreditar qual método funciona.. só que scanf("%c%*c", &cont); não funciona quando aprender um metodo que funcione e não seja fflush(), melhor! Por enquanto (e já faz um bom tempo) o utilizo e nunca fugiu do meu esperado, nenhum resultado além do meu desejo. De qualquer forma obrigado pelo esclarecimento a respeito do fflush() até então nunca havia escutado criticas a respeito dela.
-
Bom se existem pessoas que não tem paciencia de explicar no forum... eu tenho Então Pigmeo, devido a um erro na funcao getchar(), scanf(), gets(), muitas vezes ela capitura o "enter" que você pressiona quando termina de digitar um dado no prompt.... e isto torna necessário a utilizacao da funcao fflush() que nada mais é, que uma funcao que limpa o buffer de um arquivo... e no caso o "arquivo"que queremos limpar o buffer é o stdin que nada mais é o que o metodo de entrada do teclado. portanto fflush(stdin) no caso se voce utilizar o linux a mesma não funciona... então voce precisa utilizar o __fpurge(stdin)...(isto mesmo com dois underlines antes do nome da fucao) PS: por experiencia propria scanf("%c%*c", &cont); //note a mudança aqui!!!!!!!!!!!!!!!!!!!!!!!!!!!!! não funciona em todos os casos, principalmente para quem utiliza LINUX Abraco Uma boa alternativa é utilizar o cin do c++ que não possui estes bugs
-
Cara vou lhe dar uma dica, acho que deve ter sido uma das primeiras que recebi na vida... NUNCA utilize "goto"... pra te falar a verdade ESQUECA que ele existe... voce não tem idéia da bagunca que seu codigo pode virar com esta função... Esta funcao foi inserida na linguagem devido a linguagens anteriores que não existia ainda comandos como de desvio condicional (IF) e loop's(WHILE, FOR, DO.. WHILE)...então não o colocar complicaria a cabeca de quem ainda não conhecia programacao estruturada aahaha.. descupa o drama, mas já o fizeram comigo e me senti na responsabilidade de o fazer.. hehehe.. Abraco
-
Olha... eu não utilizo o Visual Studio C++, consequentemente eu não utilizo o compilador da microsoft(acho que é o dev c++, não tenho certeza) eu uso o gcc... nunca ocorreu este erro no debuguer dele não.. mas como ocorre no final da execucao acredito que não tenha nenhum problema não.. =/ Abraco
-
No caso do getchar() seria logo apos a linha cout << "\nElemento " << n << " na serie Fibonacci = " << resp; mas não entendi o porque de o programa não esperar... o que pode estar ocorrendo é que o buffer do stdin está "guardando"o ultimo "enter" que você pressionou.. e quando chega no getchar() ele já descarrega o "enter" uma opcao é colocar assim cout << "\nElemento " << n << " na serie Fibonacci = " << resp; fflush(stdin); getchar(); ou voce também pode colocar (outra alternativa) cout << "\nElemento " << n << " na serie Fibonacci = " << resp; system("pause"); veja se funciona... abraco
-
Esta mensagem aparece após a mudança do codigo?
-
void Decisao(char nome[255], int password) { /*Aqui coloquei dois if com duas mensagens um para o char string e o outro para o inteiro mais mesmo assim meu programa não consegeu ler esta função ajuda ai se eu colocar um else com uma mensagem qualquer ele aparece a mensagem mais os if não */ if(nome=="david") { printf("OK..."); } if(password==1234) { printf("beleza..."); } } o prototipo desta sua funcao não possui nenhum parametro... porque voce colocou parametros na função? As variaveis nome e password são globais.. então não precisa de passa-las por parametro.... mas o erro está pois o prototipo não corresponde ao cabecalho da funcao.. ok? Dica... utilize o minimo de variaveis globais possivel... tente sempre passa-las por parametro mesmo... Abraco Deixe a funcao desta forma... void Decisao() { /*Aqui coloquei dois if com duas mensagens um para o char string e o outro para o inteiro mais mesmo assim meu programa não consegeu ler esta função ajuda ai se eu colocar um else com uma mensagem qualquer ele aparece a mensagem mais os if não */ if(nome=="david") { printf("OK..."); } if(password==1234) { printf("beleza..."); } }
-
Aqui está um erro: int maior (int valor); int menor (int val); Esta funcão deve receber um ponteiro para inteiro, ou então um vetor(o que é a mesma coisa) Assim: int maior (int valor[]); int menor (int val[]); [\code] e o mesmo deve se repetir na funcao propriamente dita...o cabecalho da funcao deve ser igual ao prototipo. --- [code] ma = maior (v[5]); me = menor (v[5]); [\code] Então aqui segue se 2 coisas incoerentes se voce quer passar o vetor todo voce deve passar somente o v e não v[5] além do mais v[5] não existe pois o vetor vai de 0..4.. Ok? voce deve retornar o ma no maior e o me no menor... e não uma posicao do vetor... Ok? Por fim está funcao sua também está um pouco incoerente.. voce não pode chamar 0 de menor e 99999 de maior.. pois sempre existe um numero menor ou maior que estes dois que podem estar no vetor O que deve se fazer é iniciar o me e o ma com a primeira posicao do vetor, e veficicar se existe um maior que este dentro do vetor(na func maior) e um menor que este dentro do vetor (na func menor) Entendeu? Abraco Uma dica boa pra encontrar erros no código é utilizar o modo 'debug' Abraco Ahhh.. no for que varre o vetor deve ser variado de 0 até 4 e não de 1 até 5....
-
Que ótimo!!!
-
Olá mem, Me fale melhor qual é sua duvida a respeito disto... eu não costumo ficar online em chats.. mas sempre que possivel eu dou uma passadinha aqui no script brasil... Voce deseja implentar Listas?! o c++ já tem uma biblioteca de listas e pilhas ótima e muito facil de ser utilizada... Quanto a Struct não é muito dificil não... Att
-
Se o problema for no INSERT ta ae uma guia de referencia a esta funcão para lhe ajudar http://www.w3schools.com/sql/sql_insert.asp :mellow:
-
E-mail enviado... qualquer duvida em funcoes para manipulacao de string me pergunta ae que eu tento lhe ajudar
-
Eu tenho alguns códigos prontos de quando eu fiz estrutura de dados. se voce quiser eu lhe envio por e-mail... Mas assim.. voce tem de fazer várias alteracoes no codigo para prepara-lo a receber string no local de inteiro... não se pode fazer igualdades tem de utilizar a strcpy() ... estas funcoes ficam na biblioteca <string.h> Tente olhar o codigo com calma utiliza o Debuger para per onde está ocorrendo o erro... me fala que eu tento lhe ajudar porque fica dificil eu ler todo o seu código e ir debugando linha por linha... para você isto fica mais simples... Att
-
Não sei com quem posso falar isto diretamente, mas acredito que com o advento da tecnologia mobile um forum de discussao a respeito da Android SKD seria muito interessante. Eu estou começando a aprender e é uma plataforma muito boa para desenvolvimento de aplicativos para mobile! Obrigao
-
Vou fazer um favorzao pra ti... executei o codigo na minha maquina e corrigi todos os possiveis erros e comentei... espero ter ajudado// #include <stdio.h> #include <stdlib.h> mostrar_menu () { char opcao; puts("\n\tViaturas? É comigo!\n"); puts("0 - Sair do programa"); puts("1 - Ler o ficheiro de texto"); puts("2 - Mostrar todas as marcas"); puts("3 - Mostrar o preço de uma viatura"); puts("4 - Escrever dados num ficheiro de texto\n"); puts("5 - Mostrar modelos de uma marca"); puts("6 - Mostrar preço de uma viatura específica"); puts("7 - Alterar o preço de um veículo específico\n"); puts("8 - Escrever dados num ficheiro binário"); puts("9 - Ler dados de um ficheiro binário\n"); puts("10 - Histograma"); puts("11 - Intervalos de preço por modelo"); puts("12 - Escrita da base de dados ordenadamente\n"); printf("Escolha uma opcao: "); scanf("%c", &opcao); switch(opcao) { case '0': puts("Adeus"); break; case '1': {ler_ficheiro(); break;} case '2': puts("2 - Mostrar todas as marcas"); break; case '3': puts("3 - Mostrar o preço de uma viatura"); break; case '4': puts("4 - Escrever dados num ficheiro de texto\n"); break; default : { puts("Opcao invalida! Escolha uma das opcoes disponiveis no Menu:\n"); mostrar_menu();} } } /* -------------------------------------------------*/ int ler_ficheiro() { char s[30]; FILE *fp; puts("Introduza o nome do ficheiro: ") //Utilizei esta funcao para voce ao ter de ficar colocando "gambiarra" de 2 gets() que nem sempre funciona// scanf("%s", s); //Funcao de limpa o buffer de entrada do teclado fflush(stdin); fp= fopen(s, "r"); if (fp==NULL) printf("não foi possivel ler o ficheiro %s \n", s); else { //Voce havia esquecido de enviar o parametro para a funcao com o caminho do arquivo de entrada// ler_fich_texto(s); } } /* -------------------------------------------------*/ int ler_fich_texto(const char *fp) { int parametros; int result; FILE *stream; //Voce declarou como um caracter e não um vetor de caracteres// char s[150]; parametros = 0; //Havia esquecido de atribuir o fopen a variavel stream// stream = fopen(fp, "r"); //É melhor garantir que o ponteiro não esteja NULL// if ( !stream==NULL ) { parametros = 0; while ( fgets(&s, 150, stream) ) { ++parametros; } fclose(stream); printf("Foram lidos %d registos\n", parametros); } else { printf("Erro ao abrir o ficheiro %s para ler\n", fp); result = 0; } mostrar_menu (); } /* -------------------------------------------------*/ main () { int i=1; while(i==1) { mostrar_menu(); i++; } } Agora ta funcioando certinho ^^
-
int ler_ficheiro() { char s[30]; FILE *fp; puts("Introduza o nome do ficheiro: "); gets(s); gets(s); fp= fopen(s, "r"); if (fp==NULL) printf("não foi possivel ler o ficheiro %s \n", s); else { ler_fich_texto(); } } Porque voce coloca 2 gets(s)? se for o caso de limpar o buffer utilize o fflush(stdin)(para windows) ou o __fpurge(stdin)(para linux) int ler_fich_texto(const char *fp) { int parametros; int result; FILE *stream; char s; parametros = 0; fopen(fp, "r"); if ( stream ) { parametros = 0; while ( fgets(&s, 150, stream) ) { ++parametros; } fclose(stream); printf("Foram lidos %d registos\n", parametros); } else { printf("Erro ao abrir o ficheiro %s para ler\n", fp); result = 0; } mostrar_menu (); } acredito que o segmet fault deve estar acontecendo no stream... pois você utlizou o fopen mas não faz o segunte stream = fopen(fp, "r"); então o stream é um ponteiro nulo
-
Para Windows o fflush(stdin) funciona bem, se e o amigo estiver utilizando Linux é melhor ele utilizar a __fpurge(stdin). PS: Para utilizar o __fpurge() voce deve incluir a biblioteca <stdio_ext.h> Tem um site que eu utilizo muito como referencia para tirar duvidas de funções, além dele ter o detalhamento e exemplos de praticamente todas as funções de C++ é o http://www.cplusplus.com/ Espero ter ajudado
-
Acredito que se você modificar a estrutura da fila typedef struct { telem v[MAX]; int inicio; int final; int tam; } para: typedef struct { char v[MAX]; int inicio; int final; int tam; } então o campo v será um vetor de caracteres que nada mais é do que uma string. Você também pode utilizar a biblioteca <string.h> que já possui várias funções de manipulacao de strings implementadas para voce. Abraco
-
Acredito que estes códigos não resultam em diferenca nenhuma em questão de otimizacao... Provavelmente o desempenho será o mesmo, é mais questõa que preferencia ao programar(questao de gosto). Muitos códigos são otimizados diretamente pelo compilador, e até mesmo pelo processador. Espero ter ajudado
-
Me desculpe se a resposta for muito boba, mas não seria melhor comparar com NULL ao invés de 0x00?
-
Que tal este código bem simples: #include <stdio.h> #include <stdlib.h> int main() { //variavel de controle do while int i = 1; //O valor significa a tabuada de qual numero voce deseja imprimir// int valor = 3; while (i <=10) { printf("\n%d * %d = %d", valor, i, valor*i); i++; } return 0; }
-
Porque voce não tenta utilizar o fscanf?
-
Olá Galera, tudo bem? Sou iniciante de Octave e estou com um probleminha eu sei que para carregar um arquivo é somente fazer "load <nome_do_arquivo>", mas eu desejo além disto armazenar a matriz em uma variavel. Tente o seguinte comando "A = load <nome_do_arquivo>", mas retornou syntax error. Vocês poderiam me ajudar? Obrigado
-
Noosssaaaa... Valeu mesmo michels.. alem de você ter resolvido meu problema.. deu pra aprender muita coisa que eu tinha curiosidade... heh.. muito obrigado mesmooooo.... o que eu achei que vai me salvar é o do post com o TQRComposite... brigado mesmooo.. você sempre me salvando..heheheh brigaduu...