Ir ao conteúdo
  • Cadastre-se

Lucas Pelepek

Membro Pleno
  • Posts

    56
  • Cadastrado em

  • Última visita

  1. Função que escreve e lê o arquivo binário: int FUNCAO_QUE_GRAVA_BIN (char filename[],int partida1,char resultado1) { typedef struct { int partida; char jogvelha[3][3]; char resultado; } velha; velha partida = {partida1,{"a","b"},resultado1},read_data; FILE * file= fopen(filename, "wb"); if (file != NULL) { fwrite(&partida, sizeof(velha), 1, file); fclose(file); FILE* fin = fopen(filename, "rb"); fread(&read_data, sizeof(velha), 1, file); printf("%d %c %c\n", read_data.partida, read_data.jogvelha[3][3], read_data. resultado); fclose(fin); fflush(stdin); while(getchar()!='\n'); // option TWO to clean stdin getchar(); // wait for ENTER return 0;//failure //ignore } return 1; //sucesso /ignore } chamando no main : int ganhador=1; char local[]={"binar"}; int partidas= 1; FUNCAO_QUE_GRAVA_BIN(local,partidas,ganhador); o problema é que o output está saindo tudo errado, o jogvelha[3][3] não sai direito, como arrumar?
  2. Um usuário escreve um titulo e um texto, que então são guardados em uma table, há como criar uma lista desses títulos que então se clicados redirecionam ao texto relacionado? o usuário se quiser pode escrever mais títulos e textos, e então a lista pode crescer. apenas queria saber se essa lista pode ser feita, consigo criar listas, porém não de uma database que recebeu input de um user. não sei se algo assim é possível, obrigado desde já, aprecio qualquer dica.
  3. Bom dia, tarde, noite. problema: Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\check_form.php on line 37 no codigo: else if ((filter_var($_POST["Email"],FILTER_VALIDATE_EMAIL)){ $erro_Email = "Email é invalido." ; // <---- linha 37 $erro = true; } codigo completo: <?php function verifica_campo($texto){ $texto = trim($texto); $texto = stripslashes($texto); $texto = htmlspecialchars($texto); return $texto; } function verifica_campoEmail($texto){ $texto = filter_var($texto,FILTER_VALIDATE_EMAIL); return $texto; } $consenha= ""; $senha= ""; $datanasc= ""; $Email= ""; $nome = ""; $erro = false; if ($_SERVER["REQUEST_METHOD"] == "POST") { if(empty($_POST["nome"])){ $erro_nome = "Nome é obrigatório."; $erro = true; } else{ $nome = verifica_campo($_POST["nome"]); } if(empty($_POST["Email"])){ $erro_Email = "Email é obrigatório."; $erro = true; } else if ((filter_var($_POST["Email"],FILTER_VALIDATE_EMAIL)){ $erro_Email = "Email é invalido." ; // <----linha 37 $erro = true; } if(empty($_POST["datanasc"])){ $erro_datanasc = "datanasc é obrigatório."; $erro = true; } else{ $datanasc = verifica_campo($_POST["datanasc"]); } if(empty($_POST["senha"])){ $erro_senha = "senha é obrigatório."; $erro = true; } else if ((strcmp($_POST["senha"],$_POST["consenha"])) != 0 ){ $erro_senha = "senha nao bate com consenha."; $erro = true; } if(empty($_POST["consenha"])){ $erro_consenha = "consenha é obrigatório."; $erro = true; } else{ $consenha = verifica_campo($_POST["consenha"]); } } ?> ainda estou trabalhando nele (obviamente), porém esse erro não me deixa ir pra frente. caso precisem do resto do cod: obrigado desde já.
  4. valeu, mas já tinha conseguido fazer assim: for (z = 0; z <= cod; z++) { for ( i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); } if(z<=0){ printf("\n"); } }}
  5. opa, a variavel ( i ) já está sendo inicializada no proprio FOR, mesmo colocando ela lá em cima dá o mesmo resultado. mas como você disse: era só ter mudado o anda. for (int i = 0; i <= (anda-1); i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } outra mudança pra não ter espaço entre os outputs: for (int i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); }}} o unico problema é que está tendo 2 linhas puladas no final, não sei de onde elas vem, mas obrigado pela ajuda. #include <stdio.h> #include <string.h> void main() { int c, anda, numero,i, x,y,cod,z ,num; y=0; cod=0; char portas[100]; char matrizcopia[1000][1000]; while( 1 ) // 1 faz ser loop eterno { while (1)// loop pra verificar se está dentro dos limites { // printf("Escreva o numero de andares e quanto numeros jogara:\n"); scanf( "%d %d", &anda, &numero ); if ( (anda <= 100 && anda >= 1) && (numero <=200 && numero >= 1) || (anda == 0 && numero == 0) ) { y+=anda; break; }} if( anda == 0 && numero == 0 ) // sai do loop caso 0 0 { break; } for( c=0; c<anda; c++ ) // zera o vetor { portas[c] = 0; } for( c=0; c<numero; c++ ) // le as jogados de acordo com o numero lido antes { //printf("\njogada(%d): ",c+1); scanf( "%d", &num ); for( x=num-1; x<anda; x+=num )// inverte o vetor nas portas calculadas { portas[x] = !portas[x]; }} for ( i = 0; i <= (anda-1); i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } for (z = 0; z <= cod; z++) { for ( i = 0; i < strlen(matrizcopia[z]) ; i++) { printf("%c",matrizcopia[z][i]); } printf("\n"); }}
  6. bom dia/tarde/noite. #include <stdio.h> #include <string.h> void main() { int c, anda, numero, x,y,cod,z ,num; y=0; cod=0; char portas[100]; char matrizcopia[1000][1000]; while( 1 ) // 1 faz ser loop eterno { while (1)// loop pra verificar se está dentro dos limites { printf("Escreva o numero de andares e quanto numeros jogara:\n"); scanf( "%d %d", &anda, &numero ); if ( (anda <= 100 && anda >= 1) && (numero <=200 && numero >= 1) || (anda == 0 && numero == 0) ) { y+=anda; break; }} if( anda == 0 && numero == 0 ) // sai do loop caso 0 0 { break; } for( c=0; c<anda; c++ ) // zera o vetor { portas[c] = 0; } for( c=0; c<numero; c++ ) // le as jogados de acordo com o numero lido antes { printf("\njogada(%d): ",c+1); scanf( "%d", &num ); for( x=num-1; x<anda; x+=num )// inverte o vetor nas portas calculadas { portas[x] = !portas[x]; }} for (int i = 0; i <= anda; i++) { matrizcopia[cod][i]=(portas[i] ? 'O' : 'C'); } cod+=1; } for (int z = 0; z <= cod; z++) { printf("\n"); for (int i = 0; i < 200; i++) { printf("%c",matrizcopia[z][i]); }}} colocando esse imput: 5 3 3 4 2 0 0 o resultado deveria dar: COOCC porém no meu codigo ele adciona uma letra a mais: COOCCO não importa qual imput. não consigo achar por onde essa letra tá entrando, HELP! obrigado desde já.
  7. É que eu não coloquei aspas nos números na hora da soma, por isso minha pergunta, mas valeu. adicionado 1 minuto depois @DiF <!DOCTYPE html> <html> <head> <style> caixa { width: 300px; border: 2px solid black; padding: 25px; margin: 25px; box-sizing: border-box; display: inline-block; } alinhador { text-align: center; margin-right: auto; margin-left: auto; } entrada[type=number] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; display: inline-block; } </style> </head> <body> <alinhador> <h1> <caixa>calculador</caixa> </h1> <form> <input type="number" id="p1" name="p1" /> <select id="operador" name="operador"> <option value= "+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" id="p2" name="p2"> <p id="resultado">=</p> <button id="button" onclick="mais()">calcular!</button> </form> </alinhador> <script> function mais (){ var p1 = document.getElementById("p1").value; var p2 = document.getElementById("p2").value; for (var i = 0; i < tama.length; i++) { p1 = parseInt(tama[i]); p2 = parseInt(tama[i]); } var resultado1 = document.getElementById("resultado"); resultado1.innerHTML = p1 + p2; } </script> </body> </html> valeu, porém mesmo assim não funciona. alguma ideia? o resultado não aparece.
  8. entendi, mas de que lugar tiro? testei em todos relacionados aos 2 números , a unica diferença é que não aparece o resultado mais.
  9. valeu tenho que ficar mais ligado, só que agora, ex: caso eu digite : 10 + 11, aparece como resultado : 1011.
  10. <!DOCTYPE html> <html> <head> <style> caixa { width: 300px; border: 2px solid black; padding: 25px; margin: 25px; box-sizing: border-box; display: inline-block; } alinhador { text-align: center; margin-right: auto; margin-left: auto; } entrada[type=number] { width: 100%; padding: 12px 20px; margin: 8px 0; box-sizing: border-box; display: inline-block; } </style> </head> <body> <alinhador> <h1> <caixa>calculador</caixa> </h1> <form> <input type="number" id="p1" name="p1" /> <select id="operador" name="operador"> <option value= "+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select> <input type="number" id="p2" name="p2"> <p id="resultado"></p> <button id="button" onclick="mais()">calcular!</button> </form> </alinhador> <script> function mais (){ var p1 = document.getElementById("p1").value; var p2 = document.getElementById("p2").value; var resultado1 = document.getElementById("resultado"); resultado1.innerhtml = p1 + p2; } </script> </body> </html> bom dia/tarde/noite. sou muito novato em programação web, e estava tentando fazer esse calculador, porém mesmo seguindo os tutoriais ele não calcula! com certeza devo estar fazendo algo errado muito obvio. só quero que o resultado apareça, o resto do código eu termino depois.
  11. acabou que no final podia usar struct, dai pulei a matriz, rsrsrs, mas valeu pela ajuda.
  12. acho que entendi, mas parece que não. if (!strcmp(w,email[1][c])) me atrapalhei totalmente na matriz, acho que tenho que refazer. ainda core dump.
  13. opa, bem, eu alterei pra isso: #include <stdio.h> #include <stdlib.h> #include <string.h> #define co 2 #define li 2 int main() { char w[41]; char x[41]; char email[co][li]; int c,l,cont; for (c=0; c < co; c++) { printf("Email numero: %d\n",c); printf("email e senha:\n"); for (l = 0; l < li; l++) { scanf("%s",&email[c][l]); } } printf("\ndigite email: "); scanf("%s",&x); for (c=0; c < co; c++) { if (!strcmp(x,email[1][c])) { printf("\ndigite a senha: "); scanf("%s",&w); if (!strcmp(w,email[2][c])) { printf("\nBem vindo"); } else { printf("\nsenha incorreta"); } } else { printf("\nemail não encontrado"); } } } não sei se foi isso que voce tentou me passar, em qualquer caso, o erro acontece depois dessa parte que você me alertou, ou ainda estou errado?
  14. Bom dia,tarde,noite. Estou um tempo sem programar em C, acabei ficando enferrujado. objetivo do programa: Faça um programa que permita o cadastro de 5 logins com e-mail (máximo de 40 caracteres) e senha (máximo de 10 caracteres). Depois, peça para um usuário fazer o login digitando e-mail e senha. Se alguma informação for inválida, repetir. Se for certa, mostrar uma mensagem de confirmação de login e encerrar o programa. (não pode usar struct, nesse caso usei matriz). #include <stdio.h> #include <stdlib.h> #include <string.h> #define co 2 #define li 2 int main() { char w[41]; char x[41]; char email[co][li]; int c,l,cont; for (c=1; c <= co; c++) { printf("Email numero: %d\n",c); printf("email e senha:\n"); for (l = 1; l <= li; l++) { scanf("%s",&email[c][l]); } } printf("\ndigite email: "); scanf("%s",&x); for (c=1; c <= co; c++) { if (!strcmp(x,email[1][c])) { printf("\ndigite a senha: "); scanf("%s",&w); if (!strcmp(w,email[2][c])) { printf("\nBem vindo"); } else { printf("\nsenha incorreta"); } } else { printf("\nemail não encontrado"); } } } porém acontece o "segmentation fault (core dumped)" geralmente quando acontecia isso erá porque eu tinha esquecido um &, mas não é o caso. problema ocorre aqui: printf("\ndigite email: "); scanf("%s",&x);

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...