Boa noite pessoal !
Estou com problemas no código abaixo, pois na minha função Grava_Dados o parâmetro pv_NotaFiscal precisa ser um vetor, dai eu não consigo fazer ele funcionar, alguém poderia me ajudar?
#include <stdio.h>
#include <stdlib.h>
struct st_Nota_Fiscal
{
int CodigoNF;
char DT_Emissao[8];
int CodigoCliente;
int QtdeItens;
char CategoriaNota[1];
char TipoFrete[1];
};
Grava_Dados (struct st_Nota_Fiscal pv_NotaFiscal) // O problema é que pv_NotaFiscal precisa ser um vetor e não uma string
{
FILE *fp;
fp = fopen ("NF_010015.txt", "a");
if (fp == NULL)
{
return (false);
exit(1);
}
else
{ fprintf(fp,"%i;%s;%i;%i;%s;%s;\n",pv_NotaFiscal.CodigoNF, pv_NotaFiscal.DT_Emissao, pv_NotaFiscal.CodigoCliente, pv_NotaFiscal.QtdeItens, pv_NotaFiscal.CategoriaNota, pv_NotaFiscal.TipoFrete);
fclose (fp);
return (true);
}
}
int main () {
char op;
do{
struct st_Nota_Fiscal dados;
printf ("Digite o Codigo da NF: ");
scanf ("%d", &dados.CodigoNF);
setbuf (stdin, NULL);
printf ("Digite a data da emissao da NF: ");
gets (dados.DT_Emissao);
setbuf (stdin, NULL);
printf ("Digite o codigo do cliente: ");
scanf ("%d", &dados.CodigoCliente);
setbuf (stdin, NULL);
printf ("Digite a quantidade disponivel: ");
setbuf (stdin, NULL);
scanf ("%d", &dados.QtdeItens);
setbuf (stdin, NULL);
printf ("Digite a categoria da NF [V] - Venda ou [T] - Transferencia: ");
gets (dados.CategoriaNota);
setbuf (stdin, NULL);
printf ("Digite o tipo do frete [C] - CIF ou [F] - FOB: ");
gets (dados.TipoFrete);
setbuf (stdin, NULL);
Grava_Dados (dados); printf ("Deseja gravar mais alguma NF: "); scanf ("%c", &op); } while (op == 'S' || op == 's');
return 0; }
A saída precisa ser separada com " ; ", conforme exemplo:
1;20150410;89;2;V;F
2;20150411;78;1;T;C
Pergunta
Flavio_Silva
Boa noite pessoal !
Estou com problemas no código abaixo, pois na minha função Grava_Dados o parâmetro pv_NotaFiscal precisa ser um vetor, dai eu não consigo fazer ele funcionar, alguém poderia me ajudar?
#include <stdio.h>
#include <stdlib.h>
struct st_Nota_Fiscal
{
int CodigoNF;
char DT_Emissao[8];
int CodigoCliente;
int QtdeItens;
char CategoriaNota[1];
char TipoFrete[1];
};
enum boolean
{
true = 1, false = 0
}; typedef enum boolean Grava_dados;
Grava_Dados (struct st_Nota_Fiscal pv_NotaFiscal) // O problema é que pv_NotaFiscal precisa ser um vetor e não uma string
{
FILE *fp;
fp = fopen ("NF_010015.txt", "a");
if (fp == NULL)
{
return (false);
exit(1);
}
else
{
fprintf(fp,"%i;%s;%i;%i;%s;%s;\n",pv_NotaFiscal.CodigoNF, pv_NotaFiscal.DT_Emissao, pv_NotaFiscal.CodigoCliente, pv_NotaFiscal.QtdeItens, pv_NotaFiscal.CategoriaNota, pv_NotaFiscal.TipoFrete);
fclose (fp);
}
}
int main ()
{
char op;
do{
struct st_Nota_Fiscal dados;
printf ("Digite o Codigo da NF: ");
scanf ("%d", &dados.CodigoNF);
setbuf (stdin, NULL);
printf ("Digite a data da emissao da NF: ");
gets (dados.DT_Emissao);
setbuf (stdin, NULL);
printf ("Digite o codigo do cliente: ");
scanf ("%d", &dados.CodigoCliente);
setbuf (stdin, NULL);
printf ("Digite a quantidade disponivel: ");
setbuf (stdin, NULL);
scanf ("%d", &dados.QtdeItens);
setbuf (stdin, NULL);
printf ("Digite a categoria da NF [V] - Venda ou [T] - Transferencia: ");
gets (dados.CategoriaNota);
setbuf (stdin, NULL);
printf ("Digite o tipo do frete [C] - CIF ou [F] - FOB: ");
gets (dados.TipoFrete);
setbuf (stdin, NULL);
Grava_Dados (dados);
Editado por Flavio_Silvaprintf ("Deseja gravar mais alguma NF: ");
scanf ("%c", &op);
} while (op == 'S' || op == 's');
return 0;
}
A saída precisa ser separada com " ; ", conforme exemplo:
1;20150410;89;2;V;F
2;20150411;78;1;T;C
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.