Jump to content

Ajuda em ficheiros


groove_25
 Share

Recommended Posts

Boa tarde,

Precisava de uma ajudinha:

1- Peço ao utilizador o nome de um ficheiro txt, se exisitir serão feitas operações de escrita e leitura sobre ele, e se não existir é criado para a realizar as operações que referi . Até agora só usei ficheiros que se conhecia o nome previamente, portanto não estou a ver como posso fazer...

2- Como posso fazer só para ler blocos de caracteres do ficheiro, isto é, por exemplo quero ler blocos de 8bits de cada vez.

Obrigado

Link to comment
Share on other sites

1- http://www.cplusplus.com/reference/clibrary/cstdio/fopen/

2- http://www.cplusplus.com/reference/clibrary/cstdio/fread/

Isto pode ser sobre C++ mas é igual para C.

Não chego a perceber bem o teu problema. Se sabes fazer usando uma string que tens para abrir o ficheiro, o que é que há de novo?

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

O teu primeiro ponto é fácil de resolver: basta ires ao código e em vês de pores "nomedoficheiro.txt", pedes ao utilizador para introduzir o nome do ficheiro e guardas isso numa string e no código onde tens "nomedoficheiro.txt" colocas nomedastring.

Quanto ao segundo ponto, não entendi bem para queres ler informação do ficheiro em blocos de bits. Se existe informação no ficheiro que não queres utilizar, basta ignorares isso e guardares apenas o que te fizer falta.

Link to comment
Share on other sites

Tal como falou o luis_costa no primeiro ponto acho que é esse código pode te ajudar...

char nomeficheiro[50];
file *fp;
printf("Introduza o nome do ficheiro, juntamente com a sua extenção: ");
scanf ("%s", nomeficheiro);
fp=fopen(nomedoficheiro,"r");

Relativamente ao segundo ponto não te consigo ajudar.

Link to comment
Share on other sites

char bits;
fscanf(fp,"%c",&bits)

//ou

bits = fgetc (fp);

supondo que 8 bits são um byte e que um "char" é um byte então basta ler por carácter

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.