que são, as funções fseek, ftell e rewind, todas são do cabeçalho stdio.h
são também muito utilizadas em manipulações de arquivos.
Neste texto falaremos um pouco da função ftell;
A função ftell determina a posição atual de um ponteiro em um dado arquivo. Sua
sintaxe é:
long int ftell ( FILE *ponteiro para o arquivo );
A função ftell devolve o valor do indicador de posição do ficheiro indicado.
Para os fluxos binários, o valor devolvido representa a distância em bytes
a partir do princípio da informação armazenada. Para os fluxos de texto,
o valor devolvido contém um valor, que
depende da implementação e que pode ser usado posteriormente por uma invocação de
fseek para posicionamento do indicador de posição do ficheiro na mesma posição. A
função devolve o valor do indicador de posição do ficheiro, em caso de sucesso,
e o valor ??1L, em caso de erro. No caso de insucesso,
a causa é sinalizada na variável global de erro
errno.
Veja abaixo uma imagem do programa em execução:
Veja abaixo o código do programa:
#include <stdio.h>
#include <string.h>
#include<conio.h>
#define SI_ZE 753
void Moldura ( int a , int c , int b , int d , int e , int f ) {
textbackground ( WHITE );
for ( a = e; a <= c ; a++ )
for ( b = f; b <= d ; b++ ) {
gotoxy ( b , a );
textbackground ( WHITE );
printf ( " " );
}
}
int main ( ) {
Moldura ( 2 , 29 , 2 , 78 , 2 , 3 );
system ( "title ARQUIVO
- INFORMANDO TAMANHO" );
int a = 0, i = 0, tam, tp = 0, nl = 0, nc = 0, ini = 0;
char *cr = 0;
cr = ( char* ) malloc ( 10 );
char **Nomes;
char **line;
line = ( char** ) malloc ( SI_ZE * sizeof(char*) );
FILE *arq;
Nomes = ( char** ) malloc ( SI_ZE * sizeof(char*) );
if ( ( arq = fopen ( "C:\\Users\\Lima 32 SP1\\Desktop\\Arquivos\\"
"Concurso
Belas da informática.txt" , "r" ) ) == NULL ) {
printf ( "Houve um erro
na abertura do arquivo" );
getche ( );
exit ( 1 );
}
textcolor ( LIGHTRED );
gotoxy ( 29 , 3 );
printf ( "ARQUIVO -
IMFORMANDO TAMANHO" );
for ( i = 0; i < 16 ; i++ ) {
line [ i ] = ( char* ) malloc ( SI_ZE * sizeof(char) );
fgets ( line [ i ] , 80 , arq );
}
for ( i = 0; i < 16 ; i++ ) {
Nomes [ i ] = ( char* ) malloc ( SI_ZE );
Nomes [ i ] = line [ i ];
a = i;
textcolor ( LIGHTRED );
gotoxy ( 13 , a + 5 );
printf ( "%d" , a );
textcolor ( LIGHTBLUE );
gotoxy ( 19 , i + 5 );
printf ( "%s" , Nomes [ i ] );
}
fclose ( arq );
getche ( );
char arquivo [ 35 ] = "Concurso
Belas da informática.txt";
arq = fopen ( arquivo , "r" );
if ( ( arq =
fopen (
"C:\\Users\\Lima
32 SP1\\Desktop\\Arquivos\\Concurso Belas da informática.txt" ,
"r" ) ) == NULL ) {
printf ( "Houve um erro
na abertura do arquivo" );
getche ( );
exit ( 1 );
}
while ( !feof ( arq ) ) {
fread ( cr , 1 , 1 , arq );
nc++;
if ( ( *cr != ' ' ) && ( *cr != '\n' ) && ( !ini ) ) {
ini = 1;
}
if ( ( ( *cr == ' ' ) || ( *cr == '\n' ) ) && ( ini ) ) {
ini = 0;
tp++;
}
if ( *cr == '\n' ) {
nl++;
}
}
tam = ftell ( arq );
gotoxy ( 21 , 22 );
printf ( "O tamanho do
arquivo é: %d" , tam );
gotoxy ( 21 , 23 );
printf ( "O número de
palavras do arquivo é: %d" , tp );
gotoxy ( 21 , 24 );
printf ( "O número de
linhas do arquivo é: %d" , nl );
gotoxy ( 21 , 25 );
printf ( "O número de
caracteres do arquivo é: %d" , nc );
fclose ( arq );
Sleep ( 1800 );
textbackground ( WHITE );
textcolor ( LIGHTBLUE );
gotoxy ( 17 , 27 );
printf ( "Por: " );
textcolor ( LIGHTMAGENTA );
printf ( "Samuel
Lima" );
textcolor ( BLACK );
gotoxy ( 17 , 28 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 36 , 29 );
printf ( "MUITO
OBRIGADO" );
getch ( );
exit ( 0 );
getche ( );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.