Ir ao conteúdo
  • Cadastre-se
Porval's

Como funciona esse código!?

Recommended Posts

Olá pessoal,

eu estou com uma dúvida em um código aqui. Eu entendi como funciona, com exceção de 3 coisas: atoi, atof e ftell. :rolleyes:

Esse programa cadastra funcionarios, exclui, modifica. Tudo salvo em arquivo.

Vou colocar aqui só 2 procedimentos que usam esses códigos.

void exclui_func()
{
FILE *fptr;

char aux[40], nomeaux[40];
system("cls");

fptr=fopen("Cadastro.pjc","rb+");

printf("\n DIGITE O NOME DO INFELIZ: ");
fflush (stdin);
gets (nomeaux);
fseek(fptr,0,0);

while (fread(&f, sizeof (f), 1, fptr))
{
if(strcmp(f.nome, nomeaux)==0)
if(f.e==0)
{
fseek(fptr, [COLOR=Red]ftell[/COLOR](fptr) - sizeof (f), 0);
f.e=1;
fwrite(&f, sizeof (f), 1, fptr);
fseek(fptr, 0, 2);
}
}
fclose(fptr);
main();
getch();

}

void gravar()
{

FILE *fptr;
char aux[40], op;
int resp;
system ("cls");
fptr = fopen("Cadastro.pjc" , "a+");
do
{
puts ("PREENCHA A FIXA ABAIXO:");
printf("\nNOME: ");
fflush (stdin);
gets(f.nome);

printf("\nCODIGO: ");
fflush (stdin);
gets(aux);

f.codigo = [COLOR=Red]atoi[/COLOR](aux);

printf("\nSALARIO: ");
fflush (stdin);
gets(aux);
f.salario = [COLOR=Red]atof[/COLOR](aux);
f.e = 0;
fwrite(&f, sizeof(f), 1, fptr);
printf("\n DESEJA CADASTRAR OUTRO FUNCIONARIO?[S/N]\n");
op = getch();
system ("cls");
}
while((op == 's') || (op == 'S'));
fclose(fptr);
main();

}

Alguém pode me explicar o que exatamente faz essas linhas?

GRATO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • int atoi(char *str) : Retorna um inteiro e recebe uma string. Abreviação de ASCII TO INTEGER. A função converte uma string com números para um inteiro. Funções como gets() lêem caracteres ASCII do teclado, e não números. Então a atoi() serve para converter estes chars para int.

  • double atof(char *str) : Abreviação para ASCII TO FLOAT. Função parecida com a atoi(), difere apenas do tipo de retorno (agora double).

  • int ftell(FILE *arquivo) : Retorna a posição do apontador do arquivo. Pode estar apontando para o início, caso tenha acabado de ser criado, ou alguns bytes à frente, caso tenha acabado de escrever algo, ou já possua dados.

Espero ter ajudado.

Um site muito bom para consultar funções padrão de C/C++ é http://www.cppreference.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

qualquer coisa vai em www.die.net

exemplo para ftell:

http://linux.die.net/man/3/ftell

e tem o man completo da função que você quer. bem util...

(ou se estiver programando em linux, use apenas $man ftell)

(para entrada de texto, fgets é mais confiavel que gets, já que consegue limitar a quantidade de caracteres lidos para uma string, evitando assim um possivel overflow)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, é sempre bom conhecer esses sites. Já foi para os favoritos!! :lol:

Muito Obrigado pela ajuda!

Agora entendendo esses codigos posso prosseguir com meu programa!

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×