fscanf

1. fscanf

Felipe Fiori Campos Martins
felipefcm

(usa Slackware)

Enviado em 12/05/2008 - 20:55h

Ae galera, nao compreendi o uso do fscanf. Vou escrever o que estou tentando escrever e gostaria de saber como proceder. No caso, há um arquivo com n linhas e o primeiro digito dessas linhas é um inteiro. Eu gostaria que o programa olhasse linha por linha esse primeiro digito e quando encontrasse o ultimo criasse a linha seguinte com o último numero encontrado + 1.

Obrigado desde já.
Felipe


  


2. Re: fscanf

Otávio
octopos

(usa Debian)

Enviado em 12/05/2008 - 22:39h

O fscanf e o scanf em essência são a mesma coisa , ambos pegam de uma entrada padrão informações e a tratam. Você já conseguiu abrir um arquivo e manipulalo a nivel ASCII ( como caracteres) ?

Voçê pode inclusive usar o getchar para pegar os caracteres , usando um atoi() [Atomo To Int ] para transforma-lo de caracter em inteiro.

Seja um pouco mais específico , sobre oque já fez e a real dúvida.


=]



3. Re: fscanf

Felipe Fiori Campos Martins
felipefcm

(usa Slackware)

Enviado em 14/05/2008 - 00:50h

Eu já consegui abrir o arquivo para escrita, inclusive escrevê-lo. O programa faz cadastros de produtos. Por exemplo, a pessoa insere o nome do produto, ex: Shampoo, e o preço, ex: 3.5. O que o programa faz entao é adicionar isso à um arquivo chamado produtos, já aberto. Ele escreve o arquivo da seguinte forma: COD NOME PRECO, sendo COD o codigo do produto(nao inserido pelo usuário). Quando nao existe nenhum produto cadastrado o programa funciona bem, adiciona o item e coloca 1 como sendo o codigo do produto. Porem quando eu tento inserir o segundo produto ele simplesmente nao adiciona. Com certeza a parte do programa que diz: "Procure o ultimo codigo do produto depois pule uma linha, coloque um valor maior que aquele e em seguida o nome e o preco do produto" nao funciona corretamente, como poderia escrever isso?
Eis a funcao que cadasrta os produtos:

void cadastra()
{
char nome[DEF_LEN];
int codm; float preco;
system("cls");
printf("Cadastro de produtos\nDigite o nome do novo produto: ");
scanf("%s",nome);
printf("\nPreco em R$ de %s: ",nome);
scanf("%f",&preco);
FILE *fp;
fp=fopen("produtos","r+");
while(!fscanf(fp,"EOF"))
while(!fscanf(fp,""))
fscanf(fp,"%d",&codm);

fprintf(fp,"%d %s %f\n",codm+1,nome,preco);
}


Acho que agora detalhei melhor o problema, obrigado ;D






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts