Ir ao conteúdo
  • Cadastre-se

Como funciona esse código!?


Porval's

Posts recomendados

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.

Link para o comentário
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

Link para o comentário
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)

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...