Bem no ultimo post fiquei-me pela leitura de ficheiros caracter-a-caracter e como disse aqui estou com um post de continuação.
Agora vou falar de leitura de Ficheiros de texto com a leitura/escrita formatada, onde usaremos as variáveis fprintf e fscanf.
fprintf - esta variavel escreve dados num ficheiro num formato indicado e só devem ser utilizadas em ficheiros de texto.
Como exemplo de fprintf têm agora um programa básico sobre isto:#include <stdio.h>
int main(int argc, char *argv[]){
FILE *fp;
int a=1;
char b[30]="maria";
float c=2.3;
if(argc == 2){
fp = fopen(argv[1], "w");
fprintf(fp, "%d %s %.1f", a, b, c);
fclose(fp);
}
else
printf("É necessário especificar um nome de ficheiro.\n");
return 0;
}
Neste programa:
- o nome do ficheiro e digitado através da linha de comandos ao compilar por exemplo: "./fprintf dados.txt"
- o programa grava no ficheiro "dados.txt" as palavras: "1 maria 2.3"
- e aberto no modo de escrita ("w")
Agora o fscanf; Com esta variavel, entramos no ficheiro e lê-mos os dados que existem lá.
Por exemplo:#include <stdio.h>
int main(int argc, char *argv[]){
FILE *fp;
int a;
char b[30];
float c;
if((fp = fopen(argv[1], "r"))!=NULL){
fscanf(fp, "%d %s %f", &a, b, &c);
printf("a = %d\n", a);
printf("b = %s\n", b);
printf("c = %.1f\n", c);
fclose(fp);
}
else
printf("O ficheiro especificado não existe!\n");
return 0;
}
Neste programa:
- o ficheiro e aberto através da linha de comandos como o exemplo acima.
- é aberto no modo de leitura ("r").
- Devolve o número de parâmetros que conseguiu ler com sucesso
- Se o ficheiro não existir ou não se encontrar na mesma pasta/localização o programa avisa que o ficheiro e inexistente.
E acaba aqui a minha introdução a manipulação de ficheiros de texto;
segunda-feira, 20 de outubro de 2008
Publicada por Tiago Graça à(s) 01:09 0 comentários
Etiquetas: escrita, ficheiros, fprintf, fscanf, leitura, manipulacao, manipulacao ficheiros
segunda-feira, 2 de junho de 2008
Estruturas
Devido à minha má nota na disciplina de programação, o meu professor mandou-me criar um pequeno post sobre estruturas.
Sabe-se que algoritmos manipulam dados. Quando estes dados estão organizados de forma coerente, sao chamados de estrutura de dados. São a organização e os métodos que manipulam esta determinada estrutura que lhes conferem singularidade. As estruturas de dados são chamadas tipos de dados compostos que se dividem em dois: homogéneos (vectores e matrizes) e heterogéneos (registos). As estruturas homogéneas são conjuntos de dados formados pelo mesmo tipo de dado primitivo. As estruturas heterogéneas são conjuntos de dados formados por tipos de dados primitivos diferentes (campos do registo) numa mesma estrutura.
Basicamente, uma estrutura de dados consiste num grupo de elementos de dados agrupados sob uma designação ou nome. Estes elementos de dados, cuja designação técnica é membros, têm vários tipos e tamanhos distintos. As estruturas de dados são declaradas em C++ utilizando a seguinte sintaxe:
struct nome_da_estrutura{.
o que significa que depois de declararmos o código acima, estamos a criar um novo tipo de dados que podia por exemplo ser struct agenda{int idade; float morada} onde criamos a estrutura agenda que contem os membros idade e morada .
Aqui está um programa que exemplifica isto:
http://www.4shared.com/file/49816311/d82a82d3/novo_struct.html
linha a linha
linha 6: cria uma estrutura chamada NomeCompleto
linha 7, 8, 9: declara uma variavel char de tamanho 15 em todas as linhas
linha 12: cria uma estrutura chamada Pessoa
linha 13: dentro da estrutura NomeCompleto, é criada mais uma chamada Nome
linha 14: é declarada a variavel inteira "idade"
linha 17: dentro da estrutura Pessoa e criada outra chamada total
linha 28: é mostrado o nome completo
se quiserem saber mais um pouco sobre isto, têm aqui alguns sítios:
http://gracianotorrao.wordpress.com/2008/04/01/estruturas-de-dados-struct-c/
http://www.vivaolinux.com.br/scripts/verScript.php?codigo=1955
http://pt.wikibooks.org/wiki/Programar_em_C/Tipos_de_dados_definidos_pelo_usu%C3%A1rio
http://www.linuxdicas.com.br/section-viewarticle-219.html
Exercício:
Depois desta explicação, vou agora propor um pequeno exercício, cujo resultado já foi postado no meu blog. consiste em criar uma pequena agenda onde é criada a estrutura "registo" contendo as variáveis estado, numero de telemóvel, nome, e-mail e data de nascimento. esta agenda deve conter as funções de inserir, eliminar, listar e procurar.
para quem achar difícil, está aqui a resolução:
http://www.4shared.com/file/49091731/ace1b998/_2__agendaTiagoGraa.html
Publicada por Tiago Graça à(s) 01:22 0 comentários
Etiquetas: estrocturas, estruturas, ficheiros, int, manipulaçao dados