Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marques331

Gravação de char (arquivo) em uma string

Recommended Posts

Galera estou tentanto fazer um programa que leia caracter por caracter (incluido espaços, enter, etc) de um arquivo txt e gravar todos os caracteres lidos em uma string.

 

Não sei se é possível, é que eu quero trabalhar com um sisteminha de criptografia e para isso eu precisava que o texto estivesse dentro de uma unica variavel.

 

Eu pensei em usar algo como isto:

 

 

(EM C)


 

 


#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char c;
int x;
char texto[100];
fp = fopen("criptografia.txt","r");
while((c = getc(fp) ) != EOF) //aqui ele pegaria caracter por caracter
strcat(texto,c); //aqui ele gravaria todos os caracteres lidos dentro de uma string
fclose(fp);
getch();
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia é está correta. Mas deve tomar cuidado com o tamanho da string de destino, recomendo trabalhar com alocação dinâmica dela de acordo com o tamanho do arquivo.

 

Para descobrir o tamanho do arquivo:

 

1- Posicione o ponteiro de leitura no final do arquivo. Utilize a função fseek.

http://www.cplusplus.com/reference/cstdio/fseek/

 

2 - Leia a posição atual do mesmo. Utilize a função ftell.

http://www.cplusplus.com/reference/cstdio/ftell/

O valor retornado (um long int) é o tamanho total do arquivo.

 

3 - Posione o ponteiro novamente para o início do arquivo para iniciar a leitura do arquivo. Novamente utilize a função fseek.

http://www.cplusplus.com/reference/cstdio/fseek/

 

OBS.: No código de exemplo da função fread, é também um exemplo do que listei acima.

http://www.cplusplus.com/reference/cstdio/fread/

 

Espero ter ajudado, FLW!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.