Beruflich Dokumente
Kultur Dokumente
Pr-processador
by Prof. Edson Pedro Ferlin
#define
Usa-se o comando #define para definir um identificador e uma
string. O compilador substituir o identificador pela string toda
vez que ele for encontrado no arquivo-fonte.
Exemplos :
#define verdadeiro 1
#define Max_pix 256
#define um 1
#define erro_1 "erro padro na entrada\n"
#define PRN(n) printf("%f\n",n)
#define SOMA(x,y) (x + y)
#define Produto(x,y) ((x)*(y))
#define min(a,b) (a<b)?a:b
www.professorferlin.blogspot.com 1
Pr-processador
by Prof. Edson Pedro Ferlin
#include
O comando #include do pr-processador instrui o compilador a
incluir um outro arquivo fonte com aquele que contm o comando
#include. Devemos envolver o arquivo-fonte lido entre aspas ou
entre o sinal de maior e menor.
stdio.h
by Prof. Edson Pedro Ferlin
Entrada e Sada
o arquivo-cabealho de entrada e sada bufferizada do C
e se chama stdio.h (standard input/output) que
corresponde no UNIX ao arquivo io.h.
www.professorferlin.blogspot.com 2
Arquivos
by Prof. Edson Pedro Ferlin
Conceito Lgico
Em C, um arquivo um conceito lgico que o sistema pode
aplicar a qualquer coisa, desde arquivos em disco at terminais;
Funes Bsicas
by Prof. Edson Pedro Ferlin
FUNO OPERAO
www.professorferlin.blogspot.com 3
printf()
by Prof. Edson Pedro Ferlin
%c um nico caracter
%d decimal
%i decimal
%e notao cientfica
%f ponto decimal flutuante
%g usa %e ou %f - aquele que for menor
%o octal
%s string de caracteres
%u decimal sem sinal
%x hexadecimal
%% imprime o sinal %
%p exibe um ponteiro
%n o argumento associado ser um ponteiro no qual ser colocado o
nmero de caracteres escritos at o momento.
printf()
by Prof. Edson Pedro Ferlin
Observaes
www.professorferlin.blogspot.com 4
scanf()
by Prof. Edson Pedro Ferlin
%c l um nico caracter
%d l um inteiro decimal
%i l um inteiro decimal
%e l um nmero de ponto flutuante
%f l um nmero de ponto flutuante
%h l um inteiro curto
%o l um nmero octal
%s l uma string
%x l um nmero hexadecimal
%p l um ponteiro
%n recebe um valor inteiro igual ao nmero de caracteres lidos
at o momento.
scanf()
by Prof. Edson Pedro Ferlin
Observaes (1)
1. Um caractere branco na string de controle faz com que scanf() passe por
cima de um ou mais caracteres brancos na string de entrada. Um caractere
branco um espao, um tab ou um \n. Em resumo, um caractere branco
na string de controle faz com que scanf() leia, mas no armazene,
qualquer nmero (incluindo o zero) de caracteres brancos, at o primeiro
caractere no-branco.
10
www.professorferlin.blogspot.com 5
scanf()
by Prof. Edson Pedro Ferlin
Observaes (2)
5. Deve-se separar dados de entrada usando espaos, tabs ou \n. Sinais
de pontuao como vrgula, ponto-e-vrgula e outros como separadores
no so considerados.
11
scanf()
by Prof. Edson Pedro Ferlin
Observaes (3)
8. Apesar de usar espaos, tabs e \n como separadores de campo, quando
se estiver lendo um nico caracter, o computador ler os separadores de
campo como qualquer outro caracter. Por exemplo, com uma fila de
entrada (x y), o scanf("%c%c%c",&a, &b, &c); retornar como
caractere x em a, um espao em b e o caractere y em c.
12
www.professorferlin.blogspot.com 6
Entrada e Sada
by Prof. Edson Pedro Ferlin
NOME FUNO
13
Ponteiro do Arquivo
by Prof. Edson Pedro Ferlin
14
www.professorferlin.blogspot.com 7
Funes com Arquivos
by Prof. Edson Pedro Ferlin
fopen() Parte 1
Esta funo abre uma fila de bytes para ser usada e liga
um arquivo a fila aberta.
15
fopen() Parte 2
Modo Significado
"r" abre um arquivo-texto para leitura (read)
"w" cria um arquivo-texto para gravao (write)
"a" anexa a um arquivo-texto (append)
"rb" abre um arquivo-binrio para leitura (read-binrio)
"wb" cria um arquivo-binrio para gravao (write-binrio)
"ab" anexa um arquivo binrio (append-binrio)
"r+" abre um arquivo texto para leitura/gravao
"w+" cria um arquivo-texto para leitura/gravao
"a+" abre ou cria um arquivo-texto para leitura/gravao
"r+b" abre um arquivo-binrio para leitura/gravao
"w+b" cria um arquivo-binrio para leitura/gravao
"a+b" abre um arquivo binrio para leitura/gravao
"rt" abre um arquivo texto para leitura (read-text)
"wt" cria um arquivo texto para gravao (write/text)
"at" anexa uma arquivo-texto (append-text)
"r+t" abre um arquivo-texto para leitura/gravao
"w+t" cria um arquivo-texto para leitura/gravao
"a+t" abre um arquivo-texto para leitura/gravao
16
www.professorferlin.blogspot.com 8
Funes com Arquivos
by Prof. Edson Pedro Ferlin
fopen() Parte 3
Exemplo: fp = fopen("A:\arq\teste.txt","w");
17
fopen() Parte 4
18
www.professorferlin.blogspot.com 9
Funes com Arquivos
by Prof. Edson Pedro Ferlin
putc()
usada para gravar caracteres em uma fila previamente
aberta para gravao por meio da funo fopen().
Exemplo: putc(ch,fp);
Observaes:
1. O ponteiro do arquivo informa a putc() em qual arquivo em disco
gravar.
19
getc() Parte 1
Observaes :
1. A funo getc() devolve uma marca EOF quando alcana o final
de arquivo. Logo, para ler um arquivo-texto at a marca de
fim de arquivo.
ch = getc(fp);
while (ch != EOF)
{
ch = getc(fp);
}
20
www.professorferlin.blogspot.com 10
Funes com Arquivos
by Prof. Edson Pedro Ferlin
getc() Parte 2
21
fclose() Parte 1
usada para fechar uma fila que foi aberta com fopen().
Exemplo: fclose(fp);
Observaes :
22
www.professorferlin.blogspot.com 11
Funes com Arquivos
by Prof. Edson Pedro Ferlin
fclose() Parte 2
Observaes:
23
ferror()
Exemplo: ferror(fp);
24
www.professorferlin.blogspot.com 12
Funes com Arquivos
by Prof. Edson Pedro Ferlin
rewind()
Exemplo:
rewind(fp);
25
putw() e getw()
Exemplo :
putw(100, fp);
inteiro=getw(fp);
26
www.professorferlin.blogspot.com 13
Funes com Arquivos
by Prof. Edson Pedro Ferlin
fputs() e fgets()
27
Forma geral:
28
www.professorferlin.blogspot.com 14
Funes com Arquivos
by Prof. Edson Pedro Ferlin
main()
{
FILE *fp;
float mat[100];
int i;
if( (fp=fopen("nome.dat","wb") ) ==NULL )
{
printf("Arquivo no pode ser aberto");
exit(1);
}
for( i=0; i<100; i++) mat[i] = (float) i; /* salvar a matriz inteira */
if( fwrite(mat, sizeof(mat),1,fp) != 1 ) printf("erro no arquivo");
fclose(fp);
}
29
www.professorferlin.blogspot.com 15
Funes com Arquivos
by Prof. Edson Pedro Ferlin
Acesso Aleatrio
Pode-se efetuar operaes de leitura e gravao aleatrias sob o
sistema de entrada e sada bufferizado com a ajuda da funo fseek(),
que ajusta o localizador de posio no arquivo.
31
FILE *fp;
char ch;
if( ( fp = fopen("x.dat","rb") ) == NULL )
{
printf("O arquivo no pode ser aberto\n");
exit(1);
}
fseek(fp, 234, 0);
ch = getc(fp) ; /* le um caractere na posio 235*/
32
www.professorferlin.blogspot.com 16
Funes com Arquivos
by Prof. Edson Pedro Ferlin
fprinf() e fscanf()
Estas funes se comportam exatamente como as funes
printf() e scanf(), s que operam em arquivos em
disco.
Forma geral:
Exemplo:
fscanf (stdin,%s %d, nome, &numero);
fprinf (stdin,%s %d\n, nome, numero);
33
remove()
Exemplo:
34
www.professorferlin.blogspot.com 17