Ir ao conteúdo
  • Cadastre-se

Arquivos em C


Posts recomendados

Boa noite, pessoal. Estou com um problema no momento em que tento pegar uma certa parte de um arquivo e atribuir para uma variável char texto[20], por exemplo. O programa simplesmente para de responder, e minha habilidade com arquivos é quase nula.

Tentei fazer da seguinte forma:

float r1, r2, r3;char nr1[10], nr2[10], nr3[10]; cadastro = fopen("cadastro.txt", "w");fgets(arquivo, 100, cadastro);strcpy(nr1, strtok(arquivo, ","));r1 = atof(strtok(NULL, ","));strcpy(nr2, strtok(NULL, ","));r2 = atof(strtok(NULL, ","));strcpy(nr3, strtok(NULL, ","));r3 = atof(strtok(NULL, ","));

O que fiz de errado? (mais fácil, o que aí está certo? haha)

 

onde tento pegar no arquivo cadastro uma string e um float, separados por vírgula, três vezes.

Link para o comentário
Compartilhar em outros sites

Olá!

 

Olha sou inciante em C e não sei se você já consegui resolver o problema, mas de todo modo . . .

 

- Com relação ao “w”, este é usado para gravar dados em arquivo e quando o arquivo não existir ele será criado, além disso “w” a cada tentativa de abrir o arquivo ele vai sobrescrever tudo o que estiver no arquivo “apagar”. Como você deseja apenas ler algo do arquivo neste caso você deve usar “r”, apenas para leitura dos dados.

 

- Com relação ao ponteiro para arquivo cadastro, em fopen tente substitui-lo pelo código abaixo e veja se a mensagem de erro aparece, não acredito que seja este o problema, mas de qualquer maneira . . .

if ( ( cadastro = fopen ( "cadastro.txt", "r" ) ) == NULL ) {   printf ( "\nO arquivo não pode ser aberto ! ! ! \n" );   exit ( 1 ); }

- e com relação a variável que vai receber os dados em fgets “arquivo” tenho certeza que você a declarou em alguma parte do código embora eu não tenha a visto, mas de toda forma de uma olhada nela.

 

- outra coisa se possível tente postar também possíveis informações de erros e ou alertas que o compilador auxiliado pela IDE possa lhe passar após a compilação . . .

 

- com relação ao restante do código vou ficar devendo, pois além de iniciante não consegui entender quase nada . . .

 

Se possível tente também postar mais partes do código se não todo ele, acho que pode ser de maior ajuda.

 

Bom só posso ir ate aqui . . .

 

 

Ubuntu 14.04  GNU GCC 4.8  Codeblocks 13.12

 

 

 

Espero ter Ajudado ! ! !

Link para o comentário
Compartilhar em outros sites

Vai depender de como seu arquivo está estruturado. Se for de forma textual haverá a necessidade de uso da biblioteca <string.h> Mas se for estruturado de forma binária será necessário criar uma estrutura padrão de leitura, que vai facilitar muito seu serviço.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!