-
Posts
655 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que 1freakday postou
-
@Gabriel Fernandes Seguro F Duvido esse 'header' continuar ai ;P
-
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];
-
1 - Poste uma parte do código para te ajudar.
-
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; }
-
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.
-
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; }
-
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++; }
-
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; }
-
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; }
-
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.
-
@MassakiMsk de fato, porém não foi só isso que corrigi.
-
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]; } }
-
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; }
-
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]); } }
-
Qual sua duvida?
-
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
-
Tenta esse codigo, por teste funcionou: http://pastebin.com/qifa2BWV
-
Tenta utilizar a string da query assim: sprintf(cmdSQL, "SELECT * FROM usuarios WHERE login = '%s'", cliente);
-
De nada, ate mais!
-
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);
-
-
Troque FindWindowW() por FindWindow()
-
Mensagem se duplicou :S
-
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.
-
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