Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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.

Editado por Porval's

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






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

×