Ir para conteúdo
Fórum Script Brasil

sloncomplex

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que sloncomplex postou

  1. Olá, preciso implementar um programa em C que lê de um arquivo binário um vetor de unsigned int's, porém, não sei a quantidade de elementos nem nada, pesquisei sobre as funções ftell e fseek, mas ainda estou confuso, gostaria que alguém me desse uma luz sobre tal coisa. Coloquei o exemplo de código que estou tentando desenvolver, basicamente, ler o vetor, fazer sua inversão e pegar um dígito especifico de cada número, a lógica do problema está sanada, porém não consigo ler o vetor. Agradeço desde já. #include <stdlib.h> #include <stdio.h> char *readline (void) { char c, *str = NULL; int cnt = 0; do { c = fgetc (stdin); str = (char *) realloc (str, sizeof (char) * (cnt + 1)); str[cnt++] = c; } while (c != '\n'); str[cnt - 1] = '\0'; return str; } void inver (unsigned int *v, int n) { int i; unsigned int tmp; for (i = 0; i < n/2; ++i) { tmp = v; v = v[n-1-i]; v[n-1-i] = tmp; } return; } int funcao2 (int n, int k, int cnt) { int i, x; for (i = 0; i < cnt; ++i) { x = n%10; n/=10; if (i == k) break; } return x; } void funcao (unsigned int *t, int n, int k) { int cnt = 0, i; unsigned int x; for (i = 0; i < n; ++i) { x = t; while (x != 0) { x/=10; cnt++; } t = funcao2 (t, k, cnt); k = t; } return; } int main () { char *name; int op, i; name = readline(); FILE *f = fopen (name, "rb"); scanf ("%d", &op); if (op == 1) { fseek (f, 0, SEEK_END); long int tam = ftell(f); rewind(f); tam/=sizeof(unsigned int); unsigned int *p; int k = atoi(name); p = malloc (sizeof(unsigned int) * tam); int result = fread(p, sizeof(unsigned int), tam, f); inver(p, tam); funcao (p, tam, k); for (i = 0; i < tam; ++i) printf ("%d", p); printf ("\n"); free(p); } free (name); fclose (f); return 0; }
×
×
  • Criar Novo...