bem
tenho que desenvolver um programa que a partir da leitura de dois arquivos(pedidos.txt, supermercado.txt), seja gerado um arquivo chamado notasfiscais.txt.
arquivo supermercado.txt contem em cada linha o codigo e o preco de um determinado produto.
ex:
1 1.20
2 2.30
3 4.50
arquivo pedidos.txt na 1ªlinha o numero de clientes que fizeram o pedido,na proxima linha tem o numero de pedidos, e nome do cliente,e nas seguintes tem o codigo e quantidade
ex:
2
2 andre
3 4
1 2
2 alex
2 2
3 1
agora tenho que ler esses dois arquivos e gerar um terceiro nesse padrão
cliente:
Cliente: andre
Codigo Qtd Preco Unitario Preco Total
3 4 2.17 8.68
5 5 0.78 3.90
Total Geral: 12.58
Cliente: alex
Codigo Qtd Preco Unitario Preco Total
2 1 4.41 4.41
3 2 2.17 4.34
Total Geral: 8.75
---------------------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//-----------começo-------------------
int main(){
int i = 0, j = 0, k = 0, l = 0;
int cont = 0;
char *p, *d;
int ncliente = 0;
char count[100];
//supermercado
int cod[50];
float preco[50];
char linha[100];
//pedidos
char cliente[100];
char conta[100];
int pedido[50];
//-----------arquivos---------------------
FILE *sp;
FILE *pd;
FILE *nf;
sp = fopen("supermercado.txt", "r");
pd = fopen("pedidos.txt", "r");
nf = fopen("notas.txt", "w");
//-----tratamento de erros------------------
if((!sp) || (!nf)) {
printf("erro");
exit(1);
}
while( !feof(sp) ) {
fgets(linha,12,sp);
fputs("Preco:",nf);
p = strstr(linha," ");
preco[i] = atof(p);
fputs(p, nf);
fputs("\n",nf);
i++;
}
rewind(sp);
while( !feof(sp) ) {
fputs("Codigo: ", nf);
fgets(linha,2, sp);
cod[k] = atoi(linha);
fputs(linha, nf);
fputs("\n", nf);
fgets(linha,10, sp);
strcat(linha,"\n");
k++;
}
printf("Codigo\tPreco\n");
for(j = 0; j < i; j++){
printf("%d \t %2.2f \n",cod[j],preco[j]);
}
fclose(sp);
fclose(nf);
printf("\n\tArquivo da Nota Fiscal foi criado!\n");
//------------pausa tela---------------------------
system("pause");
//---------------fim-------------------------------
return 0;
}
----------------------------------------------------------------------------------------
a pergunta é, como devo ler, linha por linha,veja que no primeiro arquivo(supermercado.txt) é facil por motivo pois tem um padrão, mas o pedidos.txt é complicado,como saber que linha estamos lendo. fica complicado.
com isso eu consigo ler o preco,pois a função me retorna tudo que estiver depois do espaço.
while( !feof(sp) ) {
fgets(linha,12,sp);//lendo 12 caracteres
fputs("Preco:",nf);
p = strstr(linha," ");
preco[i] = atof(p);
fputs(p, nf);
fputs("\n",nf);
i++;
}
retorno: 1.20
----------------------------------------------------------------------------------------------------
mas no arquivo pedidos.txt não há um padrão.
2
2 andre
como fazer para ler só determinada linha?
como saber em que linha estou lendo?
como separar adequadamente em jogar para um vetor o resultado?
me ajudem,com algum exemplo ou algo assim...
desde já agradeço..........
Urgente....duvida Em C
Started By Andre_seduc, 20/09/2007, 13:28
Nenhuma resposta neste tópico
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)