Ir ao conteúdo

1freakday

Membro Pleno
  • Posts

    655
  • Cadastrado em

  • Última visita

Tudo que 1freakday postou

  1. @Gabriel Fernandes Seguro F Duvido esse 'header' continuar ai ;P
  2. 1 - Poste uma parte do código para te ajudar. 2 - Dica: você pode armazenar varias string usando um array de strings declarando do seguinte modo: char nome[5][3]; onde, 5 é a quantidade de strings e 3 é a quantidade de caracteres nessa string, ou pode usar um array de struct e declarar apenas uma variável de char nome[25]; , usando array de struct permite cadastrar não só o nome mas também a idade e o conceito final, sem precisar array nessas variáveis, exemplo: //Struct struct Aluno { char nome[25]; int idade; int conceitoFinal; } //Array de struct com 8(alunos) estruturas Aluno alunos[8];
  3. 1 - Poste uma parte do código para te ajudar.
  4. Espero ter ajudado... #include <stdio.h> #include <stdlib.h> #include <locale.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char *argv[]) { float bit, byte, kilobyte, megabyte, gigabyte, terabyte, petabyte, resultado; int materia, conversao, base,dado, tecla; char usuario[100]; bool quit_menu = false; setlocale(LC_ALL, "Portuguese"); printf ("DIGITE SEU NOME: "); scanf ("%s", &usuario); //Um loop para o menu //Enquanto for falso, ele vai continuar mostrando o menu //Ja implementei o retorno nos submenus //Para sair do menu, implemente uma opcao no menu abaixo //e um caso no switch, ai se for o numero do menu voce coloca a //quit_menu = true; while(!quit_menu){ system ("cls"); printf ("\n-> SEJA BEM VINDO %s <-\n\n", usuario); printf ("1. introdução a computação\n2. Física I\n3. Calculo I\n"); printf ("\nDigite o número da materia: "); scanf ("%d", &materia); system ("cls"); if (materia==1){ printf ("\n1. Conversão de dados\n2. Conversão de bases\n"); printf ("\nqual conversao? (1/2): "); scanf ("%d", &conversao); } system ("cls"); switch (conversao){ // CONVERSÃO DE DADOS case 1: do{ system ("cls"); printf ("tecle <enter>"); fflush(stdin); while ((tecla = getchar()) != '\n') printf ("\n<<<<<<CONVERSÃO DE DADOS>>>>>>"); printf ("\nConverter de:\n1. bit"); printf ("\n2. Byte"); printf ("\n3. KiloByte"); printf ("\n4. MegaByte"); printf ("\n5. GigaByte"); printf ("\n6. TeraByte"); printf ("\n7. PetaByte"); printf ("\n8. Retornar ao menu"); printf ("\n\nDigite o numero correspondente à conversão: "); // O USUARIO DIGITA O TIPO DE CONVERSAO QUE DESEJA scanf ("%d", &dado); //Voltar ao menu if(dado == 8) break; }while(dado<1 && dado >7); switch (dado){ // CADA CASE VAI SER UM CONVERSAO DIFERENTE case 1: // CASE DE CONVERSAO DE BIT printf ("\n-> CONVERSÃO DE BIT <-\n\n"); printf ("Digite o valor em bit: "); scanf ("%f", &bit); system ("cls"); byte=bit/8; kilobyte=byte/1024; megabyte=kilobyte/1024; gigabyte=megabyte/1024; terabyte=gigabyte/1024; petabyte=terabyte/1024; printf ("\nbyte: %2.2f B\n", byte); printf ("kilobyte: %2.2f KB\n", kilobyte); printf ("megabyte: %2.2f MB\n", megabyte); printf ("gigabyte: %2.2f GB\n", gigabyte); printf ("terabyte: %2.2f TB\n", terabyte); printf ("petabyte: %2.2f PB\n", petabyte); break; case 2: // CASE DE CONVERSAO DE BYTE printf ("\n-> CONVERSÃO DE BYTE <-\n\n"); printf ("Digite o valor em Byte: "); scanf ("%f", &byte); system ("cls"); bit=byte*8; kilobyte=byte/1024; megabyte=kilobyte/1024; gigabyte=megabyte/1024; terabyte=gigabyte/1024; petabyte=terabyte/1024; printf ("\nbit: %2.2f b\n", bit); printf ("kilobyte: %2.2f KB\n", kilobyte); printf ("megabyte: %2.2f MB\n", megabyte); printf ("gigabyte: %2.2f GB\n", gigabyte); printf ("terabyte: %2.2f TB\n", terabyte); printf ("petabyte: %2.2f PB\n", petabyte); break; case 3: //CASE DE CONVERSAO DE KILOBYTE printf ("\n-> CONVERSÃO DE KILOBYTE <-\n\n"); printf ("Digite o valor em KiloByte: "); scanf ("%f", &kilobyte); system ("cls"); bit=kilobyte*(1024*8); byte=kilobyte*1024; megabyte=kilobyte/1024; gigabyte=megabyte/1024; terabyte=gigabyte/1024; petabyte=terabyte/1024; printf ("\nbit: %2.2f b\n", bit); printf ("kilobyte: %2.2f KB\n", byte); printf ("megabyte: %2.2f MB\n", megabyte); printf ("gigabyte: %2.2f GB\n", gigabyte); printf ("terabyte: %2.2f TB\n", terabyte); printf ("petabyte: %2.2f PB\n", petabyte); break; case 4: // CASE DE CONVERSÃO DE MEGABYTE break; case 5: // CASE DE CONVERSÃO DE GIGABYTE break; case 6: // CASE DE CONVERSÃO DE TERABYTE break; case 7: // CASE DE CONVERSÃO DE PETABYTE break; } break; // FIM DA CONVERSAO DE DADOS //CONVERSÃO DE BASES case 2: do { system ("cls"); printf ("tecle <enter>"); fflush(stdin); while ((tecla = getchar()) != '\n') printf ("\n\n<<<<<<CONVERSÃO DE BASES>>>>>>"); printf ("\nConverter de:\n1. Binário"); printf ("\n2. Octal"); printf ("\n3. Decimal"); printf ("\n4. Hexadecimal"); printf ("\n5. Retornar ao menu"); printf ("\nDigite o número correspondente à transformação: "); scanf ("%d", &base); system ("cls"); //Voltar ao menu if(base == 5) break; }while(base <0 || base > 4); switch(base){ default: break; } break; default: break; } } return 0; }
  5. Na utilização da ferramenta <> para adicionar um comentário, quando eu copio um código C que alguém postou para testar em uma IDE ele acusa uma serie de erros no código, sendo que não é erro no código e sim na formatação que ele recebe quando é utilizado a ferramenta <>. Acredito ser um dos muitos motivos para que as pessoas postem diretamente no texto em vez de usar essa ferramenta.
  6. Depois de deixar char olhos[10]; e char cabelos[15]; modifique: scanf("%c", &olhos); scanf("%c", &cabelos); para: scanf("%s", olhos); scanf("%s", cabelos); E nessa area de if voce muda assim: if(olhos[0]=='A'||olhos[0]=='a') { porcentagem=porcentagem+1; } if(cabelos[0]=='R' || cabelos[0]=='r' && olhos[0] !='A' || olhos[0] !='a') { qtd2=qtd2+1; }
  7. Confuso!, não é apenas para fazer um menu? caso contrario, comentando: Ainda bem que não sou seu professor jovem, por que isso aqui é falta de estudo das funções básicas e seus argumentos, mas acontece, segue o erro: for(i=0;i<20;i++){ if (strcmp(s1,carac[0]) == 0) vezes_carac++; } Você esta usando um comparad.... pera ae que?? carac[0] ??? Vamos começar do inicio da função: char carac[0]; ??? mds... pera ae se não vamos ter um infarto, continuando: scanf("%s",carac[0]); WTF??? nossa chama o samu, porque.... x| Ok, brincadeiras a parte, 1 Erro - você esta declarando um array de character nulo, sem character, ou seja bug na matrix. - o certo seria: char carac; ou char carac[1]; 2 Erro - você esta utilizando o scanf de maneira errada, pois seu char já foi declarado com erro: char charac[0]; - o certo seria: scanf("%c",&carac[0]); ou scanf("%s",carac); só se você usou um vetor de caracteres, senão: - o certo seria: scanf("%c",&carac); 3 Erro - dentro do loop voce está utilizando a função strcmp de maneira incorreta, pois essa função so server para verificar se strings são iguais ou diferentes, para verificar caracteres voce deve utilizar do seguinte modo: for(i=0;i<20;i++){ if (s1[i] == charac[0]) vezes_carac++; } você só usa o charac[0] se você utilizou um vetor de caracteres, caso declarou apenas 'char charac;', use assim: for(i=0;i<20;i++){ if (s1[i] == charac) vezes_carac++; }
  8. Se fosse por questão de otimização e clareza, você poderia por essas variáveis em zero dentro do próprio loop, exemplo: #include <stdio.h> #include <conio.h> int main () { int matA[3][3]; int matB[3][3]; int matSoma[3][3]; int a, b; // Matriz A usando FOR e DO...WHILE printf ("Preencha a matriz A com 9 numeros inteiros:\n"); for (a=0, b=0; a<3; a++, b=0) do { scanf ("%d", &matA[a][b]); b++; } while (b < 3); //Fim da Matriz A // Matriz B usando For e While printf ("Preencha a matriz B com 9 numeros inteiros:\n"); for (a=0, b=0; a<3; a++, b=0) do { scanf ("%d", &matB[a][b]); b++; } while (b < 3); // Fim da Matriz B //Soma das Matrizes usando For e For for (a=0; a<3; a++) for (b=0; b<3; b++) matSoma[a][b] = matA[a][b] + matB[a][b]; // Fim da Soma. //Exibir matriz somada usando Do....While e While. printf ("\nA Soma das matrizes:\n\n"); a = 0; do { b=0; while (b<3) { printf ("\n\tSoma: %d", matSoma[a][b]); b++; } a++; } while (a<3); return 0; }
  9. Ja tentou utilizar dois for? do while - verifica a condição no final do loop for - verifica a condição no inicio do loop #include <stdio.h> #include <conio.h> int main () { int matA[3][3]; int matB[3][3]; int matSoma[3][3]; int a, b; printf ("NumerosA: "); for (a=0; a<3; a++){ for(b=0; b <3; b++) scanf ("%d", &matA[a][b]); } return EXIT_SUCCESS; }
  10. Ola, não sei se aqui serve para reportar erros, podem mover o tópico se acharem melhor, o erro é simples, toda vez que alguém usa a ferramenta 'code', na finalidade de postar um código, ele acaba incrementando dados 'invisíveis' e quando alguém tenta copiar e compilar o código postado ele(compilador) informa uma serie de erros nesse código devido a formatação 'code', creio que os desenvolvedores do fórum possam corrigir esse problema.
  11. @MassakiMsk de fato, porém não foi só isso que corrigi.
  12. Tem alguns errinhos no seu código, o próprio @MassakiMsk corrigiu uma parte, mas na do maior também tem uns erros, corrigindo: //Como ja lemos o j0, começamos no j1 for(i=0; i<4; i++) { maiorl[i] = mat[i][0]; for (j=1; j<4; j++) { //corrigido if(mat[i][j] > maiorl[i]) maiorl[i] = mat[i][j]; } } //Como ja lemos o j0, começamos no j1 for (i=0; i<4; i++) { menorc[i] = mat[i][0]; for (j=1; j<4; j++) { //corrigido if(mat[i][j] < menorc[i]) menorc[i] = mat[i][j]; } }
  13. char continuar(char escolha){ if(escolha == 'S') return 1; else if(escolha == 'N') return 0; else printf("Caractere invalido"); } Nessa função(acima) você esta utilizando char como tipo de função, o que requer um tipo de retorno char e nao int = 1 ou 0, mas isso não equivale totalmente a um erro pois char também é um int, só que na conversão, ele troca o valor int pelo ascii char e no caso você esta retornando 1 e 0 que equivalem a só e STX, porém o erro que você enviou quer dizer que você não determinou o retorno no fim da função char continuar(char), ai no caso você utiliza o programa assim: #include <stdio.h> char continuar(char escolha){ if(escolha == 'S') return 'S'; else if(escolha == 'N') return 'N'; else printf("Caractere invalido"); //I de invalido return 'I'; } int cubo(int n){ int a=0; a = n*n*n; return a; } int main(){ int n=0, a=0; char escolha=0; do{ printf("Digite um numero\n"); scanf("%d", &n); a = cubo(n); printf("O numero elevado ao cubo é %d\n", a); getchar(); printf("Deseja continuar? S para sim e N para nao\n"); scanf("%c", &escolha); }while(continuar(escolha) == 'S'); return 0; }
  14. Como voce quer comparar com um programa em uma lista, o seu modo estava quase completo, voce poderia apenas implementar os argumentos que os programas poderiam ter, como o @Fúlvio Ferreira mostrou, um exemplo: #include <stdio.h> #include <string.h> #include <windows.h> #define PROG_OTHER 0 #define PROG_GOOGLECHROME 1 #define PROG_NOTEPAD 2 #define PROG_ENTRARNAMATRIX 3 //acho que é o cafe :X void abrirPrograma(int programa, int usearg, const char *arg, const char *oprog){ char cmd[128]; cmd[0] = '\0'; //IR AO PROGRAMA ESCOLHIDO switch(programa){ //PROGRAMA ESCOLHIDO PELO USUARIO DE 'PEDRA FILOSOFAL' case PROG_OTHER: if(usearg) sprintf(cmd,"start %s %s",oprog,arg); else sprintf(cmd,"start %s",oprog); system(cmd); break; //GOOGLE CHROME - NAVEGADOR case PROG_GOOGLECHROME: if(usearg) sprintf(cmd,"start chrome %s",arg); else sprintf(cmd,"start chrome"); system(cmd); break; //BLOCO DE NOTAS - EDITOR DE TEXTO case PROG_NOTEPAD: if(usearg) sprintf(cmd,"start notepad %s",arg); else sprintf(cmd,"start notepad"); system(cmd); break; //UNKNOW default: break; } } int main(){ //Variaveis int opt = 0; char arg[2][128]; while(1){ //Limpar tela system("cls"); //Menu printf(" -- =- = - =- =- = - = -= - = - = -\n"); printf(" Abra um programa !\n"); printf(" - = - =- = -= -=- --=\n"); printf(" - = LISTA -=\n"); printf(" - 0 - Escolher -=\n"); printf(" - 1 - Google chrome-=\n"); printf(" - 2 - Notepad -=\n"); printf(" - 3 - Sair -=\n"); scanf("%d",&opt); //Escolheu sair if(opt == 3) break; //Opcao invalida if(opt > 3 || opt < 0) continue; //Usuario quer escolher o programa if(opt == 0){ printf("\nNome do programa:"); scanf("%s",arg[1]); } //Argumento usado para abrir junto ao programa printf("\nArgumento(use 'no' para nenhum argumento):"); scanf("%s",arg[0]); printf("Abrindo: %s %s\n", arg[1], arg[0]); //Se o usuario nao quiser usar argumento é so escrever no if(strcmp(arg[0],"no") == 0) abrirPrograma(opt,0,NULL,arg[1]); else abrirPrograma(opt,1,arg[0],arg[1]); } }
  15. Qual sua duvida?
  16. Então, dei mas umas pesquisadas e percebi que a função mysql_query() sempre vai retornar um valor no caso se foi feito ou nao a query(No caso se houver erro de sintaxe ela Retorna 1 e em caso de sucesso retorna 0), mas não vai informar se o "usuário" foi ou não encontrado, então com mais umas pesquisar verifiquei que apos executar o mysql_query() se houver resultado positivo, a funcao mysql_store_result() armazena o resultado da consulta, e a função mysql_fetch_row() vai nos dar o nome do usuário, ai nos só precisamos verificar com o nome do cliente, usando strcmp(), que informamos e obtemos se existe ou não o usuário, exemplo: //VARIAVEIS ADICIONAIS MYSQL_RES *resp; MYSQL_ROW resget; char resgetBuffer[128]; //ENVIAR CONSULTA DO COMANDO ACIMA //SE HOUVER ERRO DE SYNTAX ELE RETORNA ERRO //MAS SE HOUVER OU NAO A CONSULTA, ELE NAO VAI IDENTIFICAR ISSO. //Perceba que nao usei ! na frente pois erro retorna 1 if (mysql_query(&Conect, cmdSQL)){ printf("ERRO!\n",cmdSQL); mysql_close(&Conect); getchar(); return 0; }else{ //Obter a resposta da consulta, se existir resp = mysql_store_result(&Conect); if(resp){ printf("Resultado da consulta recebida!\n"); printf("Verificando se usuario existe!\n"); resget = mysql_fetch_row(resp); if(resget != NULL){ strcpy(resgetBuffer,resget[0]); if(strcmp(resgetBuffer,cliente) == 0 && strlen(resgetBuffer) > 0) printf("%s encontrado!\n",resgetBuffer); } else printf("Cliente nao encontrado!\n"); }else printf("Resultado da consulta nao recebida!\n"); //Libera o resultado da consulta mysql_free_result(resp); } Fonte de consulta: https://www.vivaolinux.com.br/artigo/Usando-MySQL-na-linguagem-C?pagina=4
  17. Tenta esse codigo, por teste funcionou: http://pastebin.com/qifa2BWV
  18. Tenta utilizar a string da query assim: sprintf(cmdSQL, "SELECT * FROM usuarios WHERE login = '%s'", cliente);
  19. De nada, ate mais!
  20. Pelo que eu pesquisei o comando FindWindow pode estar se referenciendo a FindWindowW que no caso utiliza Unicode, tenta trocar por FindWindowA que usa ANSI. Exemplo: FindWindowA(NULL, wlist);
  21. Tentou utilizar o código que enviei? Imagem em anexo do seu código funcionando.
  22. Troque FindWindowW() por FindWindow()
  23. Mensagem se duplicou :S
  24. Mingw32 gnu gcc , mas o problema não é que não funciona o printf, ele apenas da um alerta de que não é correto ou compatível, quando é usado o printf sem a include da biblioteca de entrada/saida stdio.h, porém ele compila do mesmo modo.
  25. Testei sim, pois depende da IDE que eu uso, quando não havia stdio.h não funcionou printf, creio que se você possui uma IDE flexível ela ira auto-incrementar para você, então, na parte onde tem os títulos Calculadora, etc, e só você adicionar o titulo de um programa, onde fica no topo, e vai dizer se esta aberta ou não.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!