Ir ao conteúdo
  • Cadastre-se

Gabriel Paulucci

Membro Pleno
  • Posts

    21
  • Cadastrado em

  • Última visita

Tudo que Gabriel Paulucci postou

  1. @isrnick valeu consegui fazer aqui n sabia desse modo obrigado
  2. @devair1010 eu entendi o que você quis dizer e eu consigo fazer isso mas queria saber se tem como declarar na propria chamada da função não ha uma maneira de passar igual eu fiz com "..-" ?
  3. Olá eu estou com uma duvida que parece simples, em si eu sei passar uma variável de vetor para uma função mas n sei como declarar essa variável na chamada da função. void func_cp(char modo, int tamanho, char permitir, char *variavel, int posições[], char caracteres[], int quantasposicoes); esse é o protótipo da função e queria passar para ela essa informações func_cp('c', 11, 'n', cadastro.cpf, {3, 6, 9}, "..-", 3); especificadamente a parte "{3, 6, 9}" eu n consigo passar para a função obs: a funcionalidade da função n importa no momento ela ja esta funcionando corretamente
  4. @AnsiC tipo tem uns 10 registrados e tenta pegar o 9, 8, ele ja n funciona
  5. @AnsiC você tentou fazer uns 10 testes ? porque no inicio funciona normalmente mas depois disso ele começa a acontecer aquilo
  6. Olá eu criei um programa que grava as informações de pesquisa elas mas n hora de pesquisar n esta funcionando e n sei o motivo de isso estar acontecendo #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main(int argc, char const *argv[]) { struct cadastro { int id; char nome[21]; int telefone; }clientes[10]; int cad_id_res; char cad_nome[21], cad_nome_res[21]; int cad_telefone, cad_telefone_res; FILE *arquivo; FILE *ultimoid; arquivo = fopen("arquivos/teste.txt", "a+"); ultimoid = fopen("arquivos/ultimoid.txt", "r+"); if (arquivo == NULL) { arquivo = fopen("arquivos/teste.txt", "w"); if (arquivo == NULL) { CreateDirectory("arquivos", NULL); arquivo = fopen("arquivos/teste.txt", "w"); } else { fclose(arquivo); arquivo = fopen("arquivos/teste.txt", "a+"); } } if (ultimoid == NULL) { ultimoid = fopen("arquivos/ultimoid.txt", "w"); if (ultimoid == NULL) { CreateDirectory("arquivos", NULL); ultimoid = fopen("arquivos/ultimoid.txt", "w"); } else { fprintf(ultimoid, "0"); fclose(ultimoid); ultimoid = fopen("arquivos/ultimoid.txt", "r+"); } } printf("Digite o nome: "); scanf("%20[^\n]", cad_nome); setbuf(stdin, NULL); printf("Digite o telefone: "); scanf("%i", &cad_telefone); fscanf(ultimoid, "%i", &clientes->id); clientes->id += 1; fclose(ultimoid); ultimoid = fopen("arquivos/ultimoid.txt", "r+"); fprintf(ultimoid, "%i", clientes->id); strcpy(clientes->nome, cad_nome); clientes->telefone = cad_telefone; fprintf(arquivo, "%05i %-20s %09i\n", clientes->id, clientes->nome, clientes->telefone); rewind(arquivo); fscanf(arquivo, "%5i %20c %9i", &cad_id_res, cad_nome_res, &cad_telefone_res); printf("%05i %s %09i", cad_id_res, cad_nome_res, cad_telefone_res); printf("\nQual id a pesquisar: "); int id; scanf("%i", &id); printf("\n\n\n"); rewind(arquivo); /*fseek(arquivo, i * 39, SEEK_SET);*/ for (int i = 0; i < clientes->id; ++i) { fscanf(arquivo, "%5i %20c %9i", &cad_id_res, cad_nome_res, &cad_telefone_res); if (id == cad_id_res) { printf("%05i %s %09i\n", cad_id_res, cad_nome_res, cad_telefone_res); break; } else { printf("Nao encontrado %05i ", i); printf("%05i %s %09i\n", cad_id_res, cad_nome_res, cad_telefone_res); } } fclose(arquivo); fclose(ultimoid); system("pause"); return 0; } no arquivo de texto sai da maneira correta mas quando tento puxar n vai 00001 teste 23 312654978 00002 teste 2 312456987 00003 teste 3 789465123 00004 teste 4 789465132 00005 teste 5 987564123 00006 teste 6 123456798 00007 teste 7 789456123 00008 teste 8 231564789 00009 teste 9 123456789 "arquivo de texto" o arquivo "ultimo id" e um simples arquivo que contem qual foi o ultimo id usado inicialmente ele começa com 0
  7. valeu cara você ta me ajudando muito
  8. aqui esta a formatação que vai para o arquivo de texto
  9. %5[^-] seria pegar 5 caracteres e quando chegar no "-" ele para depois e %20[^-] e %i pelo o que eu entendi tenho que colocar o fscanf formatado igual esta no arquivo de texto
  10. eu estou tendo como retorno e no arquivo de texto esta 00025-teste sla -123456789 ja tentei colocar fprintf("%05i-%-20s-%9i"); e depois pegar com fscanf("%5[^-]%20[^-]%i\n"); (sei que coloquei com partes faltando) mas n vai
  11. Olá eu estou tentando pegar dados de um arquivos de texto e ele esta formatado porque usei o fprintf para colocar no arquivo mas quando tento recuperar os dados o retorno n é o esperado #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main(int argc, char const *argv[]) { int cad_id, cad_id_res; char cad_nome[20], cad_nome_res[20]; int cad_telefone, cad_telefone_res; FILE *arquivo; arquivo = fopen("arquivos/teste.txt", "a+"); if (arquivo == NULL) { arquivo = fopen("arquivos/teste.txt", "w"); if (arquivo == NULL) { CreateDirectory("arquivos", NULL); arquivo = fopen("arquivos/teste.txt", "w"); } else { fclose(arquivo); arquivo = fopen("arquivos/teste.txt", "a+"); } } printf("Digite o id: "); scanf("%i", &cad_id); setbuf(stdin, NULL); printf("Digite o nome: "); scanf("%[^\n]", cad_nome); setbuf(stdin, NULL); printf("Digite o telefone: "); scanf("%i", &cad_telefone); clientes->id = cad_id; strcpy(clientes->nome, cad_nome); clientes->telefone = cad_telefone; fprintf(arquivo, "%05i %-20s %9i\n", clientes->id, clientes->nome, clientes->telefone); fscanf(arquivo, "%i %20s %i\n", &cad_id_res, cad_nome_res, &cad_telefone_res); printf("%i %s %i \n", cad_id_res, cad_nome_res, cad_telefone_res); fclose(arquivo); system("pause"); return 0; }
  12. valeu cara mas o que exatamente esta com erro ? so pra eu n errar novamente caso eu tente fazer de novo ? char teste= ((char)0); _beginthread(timeagr, 0, ((void*)0)); time_t rawtime= ((time_t)0); struct tm *timeinfo= ((struct tm *)0); CHAR_INFO charbufferdata[sizeof((char[]){"DD/MM/YYYY"})]= {0}; sprintf(tempo_DD, "%02u", DD); você poderia por gentiliza explicar esse parâmetros ? nunca utilizei eles assim e nem vi em nenhum lugar por exemplo porque você utilizou char teste = "((char)0)" isso muda algo ?
  13. ok obrigado por estar ajudando talvez um dos erros seja o int i que esta dentro do for
  14. então para fazer um retângulo 80 <-------> ╔═══════╗/\ ║ ║25 ╚═══════╝\/ eu teria que colocar (0, 0, 79, 25) ? writearea.Top = 0; writearea.Left = 0; writearea.Bottom = 24; writearea.Right = 79; tentei e n deu certo SMALL_RECT writearea = {0, 0, 24, 79}; a mesma coisa WriteConsoleOutput(hConsole, charbufferhora, bufsize, bufcoordhora, &writearea) sera que tem algo errado aqui ?
  15. eu coloquei desse modo mais n mudou nada SMALL_RECT writearea = {(0;79), (24;79)}; tentei colocar desse modo também mas n foi SMALL_RECT writearea; writearea.Top = 0; writearea.Left = 79; writearea.Bottom = 24; writearea.Right = 79;
  16. Olá eu estou tentando fazer um relogio junto com uma data sair no console mas que não afete o cursor ai descobri a função da biblioteca windows.h que é o WriteConsoleOutput() e estou usando em modo thread para não afetar o programa principal, mas n sai nada na tela #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <process.h> #include <windows.h> int i; void timeagr(); HANDLE hConsole; hConsole = GetStdHandle(STD_OUTPUT_HANDLE); int main(int argc, char const *argv[]) { char teste; _beginthread(timeagr,0,NULL); printf("\n\n\n\n\n"); scanf("%c", &teste); system("pause"); return 0; } void timeagr() { CHAR_INFO charbufferdata[9]; CHAR_INFO charbufferhora[9]; COORD bufsize = {1, 8}; COORD bufcoorddata = {1, 1}; COORD bufcoordhora = {1, 70}; SMALL_RECT writearea = {0, 79, 24, 79}; time_t rawtime; struct tm *timeinfo; char chartrocar1[3]; char chartrocar2[3]; char chartrocar3[3]; char totaltroca[9]; int s, m, h; int dd, mm, aa; for (;;) { time(&rawtime); timeinfo = localtime(&rawtime); s = timeinfo->tm_sec; m = timeinfo->tm_min; h = timeinfo->tm_hour; dd = timeinfo->tm_mday; mm = timeinfo->tm_mon + 1; aa = timeinfo->tm_year + 1900; totaltroca[0] = '\0'; sprintf(chartrocar1, "%i", h); sprintf(chartrocar2, "%i", m); sprintf(chartrocar3, "%i", s); strcat(totaltroca, chartrocar1); strcat(totaltroca, ":"); strcat(totaltroca, chartrocar2); strcat(totaltroca, ":"); strcat(totaltroca, chartrocar3); for (i = 0; i < 9; ++i) { charbufferhora[i].Char.AsciiChar = totaltroca[i]; } WriteConsoleOutput(hConsole, charbufferhora, bufsize, bufcoordhora, &writearea); totaltroca[0] = '\0'; sprintf(chartrocar1, "%i", dd); sprintf(chartrocar2, "%i", mm); sprintf(chartrocar3, "%i", aa); strcat(totaltroca, chartrocar1); strcat(totaltroca, "/"); strcat(totaltroca, chartrocar2); strcat(totaltroca, "/"); strcat(totaltroca, chartrocar3); for (i = 0; i < 9; ++i) { charbufferdata[i].Char.AsciiChar = totaltroca[i]; } WriteConsoleOutput(hConsole, charbufferdata, bufsize, bufcoorddata, &writearea); sleep(1); } }
  17. então como eu faria para colocar esse caractere? teria alguma maneira de voltar para uma opção sem o locale ?
  18. Olá estou tentando colocar um caractere de borda "╔ "e os outros parecidos com esse mas n consigo printar sai outro caractere. fiz um código para ver se havia mudado a posição mas nem aparece o código que usei foi #include <stdio.h> #include <locale.h> int main(void) { setlocale(LC_ALL, "Portuguese"); int i; for(i = 0; i < 256; i++) { printf("%i %c\n", i, i); } return 0; } mas se eu usar sem o setlocale vai normalmente #include <stdio.h> int main(void) { int i; for(i = 0; i < 256; i++) { printf("%i %c\n", i, i); } return 0; }

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