Publicada por fag_oliv em 04/10/2006 - 17:29h:
* fag_oliv usa Gentoo

aos grandes progrmadores C++, sou iniciante no negocio estou precisando de ajuda, vou comecar, tenho que criar um programa em C que leia uma arquivo txt e imprina na tela, na parte inicio, esta me aparecendo diversos erros de compilacao, peco a ajuda de voces, vou largar meu codigo, se poderem modificar de forma que melhore ele.

# include <stdio.h>
# include <conio.h>
#define STR 20

typedef struct bd
{
char funcao[STR];
char tx[STR];
char tupla [STR];
int vi;
int vf;
}



main ()
{
struct bd vet_reg[20]; // ganbiarra, pra ver funcionar na verdade ele deveria //ler um numero indeterminado, se souberem de algum codigo que eu consiga //fazer isso, agradeco, tbem ;)
int i;
FILE *arq;
arq = fopen ( "lexe.txt", "r" ); //abrindo arquivo pra leitura
if ( arq != NULL ) {
for ( i = 0; i < 20; ++i ) { //passando do arquivo para uma a estrutura
fscanf ( arq, "%s", &vet_reg[i].funcao);
{
if (vet_reg[i].funcao == "begin")
fscanf (arq, "%s", &vet_reg[i].tx);
else if (vet_reg[i].funcao == "update")
{
fscanf (arq, "%s", &vet_reg[i].tx);
fscanf (arq, "%s", &vet_reg[i].tupla);
fscanf (arq, "%i", &vet_reg[i].vi);
fscanf (arq, "%i", &vet_reg[i].vf);
}
else if (vet_reg[i].funcao == "commit")
fscanf (arq, "%s", &vet_reg[i].tx);
o codigo acima tenta ler a linha1 do arquivo, e verifica se ela e begin, update ou commit, se for tal opcoes, vai ler as linhas seguintes, ex: se
for begin, so vai ler a proxima linha no caso tx, agora se for update vai ler tx,tupla,va,vf; ok ?
}
fclose ( arq );
}
else
printf ( "ERRO: Impossível abrir o arquivo para leitura.n" );

for (i=0;i<20;++i)
{
printf("LISTA DE EXECUCAO");
printf("%s", vet_reg[i].funcao);
{
if (vet_reg[i].funcao=="begin")
printf ("%s", vet_reg[i].tx);
else if (vet_reg[i].funcao == "update")
{
printf ("%s", vet_reg[i].tx);
printf ("%s", vet_reg[i].tupla);
printf ("%i", vet_reg[i].vi);
printf ("%i", vet_reg[i].vf);
}
else if (vet_reg[i].funcao == "commit")
{
printf("%s", vet_reg[i].funcao);
printf ("%s", vet_reg[i].tx);
}

}
}
//este ultimo laco e para imprimir no visor o resultado... aguardo de voces vou passar tbem a lista de erros conto com a ajuda pra melhorar meu codigo e resolver os meus problemas que dever ser bem besta p/ os veteranos no assunto valew ...

17 C:WINDOWSDesktopC++bd.cpp new types may not be defined in a return type
17 C:WINDOWSDesktopC++bd.cpp invalid function declaration
64:2 C:WINDOWSDesktopC++bd.cpp [Warning] no newline at end of file

  
 
Resposta de romulojales em 04/10/2006 - 19:03h:
* romulojales usa Outra
* romulojales tem conceito: 9.2
 


Antes de tudo esse código é C, apesar de usar um compilador que também compila C++.

Bom essa parte:

typedef struct bd
{
char funcao[STR];
char tx[STR];
char tupla [STR];
int vi;
int vf;
}

A função do typedef é definir um "apilido" para struct bd, sem essa diretiva você teria que toda vez que quisesse usar um tipo bd usar o struct bd. Ai para facilitar a vida usasse o typedef.

há duas soluções:

1-

 
Resposta de romulojales em 04/10/2006 - 19:07h:
* romulojales usa Outra
* romulojales tem conceito: 9.2
 


Antes de tudo esse código é C, apesar de usar um compilador que também compila C++.

Bom essa parte:

typedef struct bd
{
char funcao[STR];
char tx[STR];
char tupla [STR];
int vi;
int vf;
}

A função do typedef é definir um "apilido" para struct bd, sem essa diretiva você teria que toda vez que quisesse usar um tipo bd usar o struct bd. Ai para facilitar a vida usasse o typedef.

17 C:WINDOWSDesktopC++bd.cpp new types may not be defined in a return type
17 C:WINDOWSDesktopC++bd.cpp invalid function declaration

há duas soluções:

1-

typedef struct bd
{
char funcao[STR];
char tx[STR];
char tupla [STR];
int vi;
int vf;
}
bd;

ou
struct bd
{
char funcao[STR];
char tx[STR];
char tupla [STR];
int vi;
int vf;
}

typedef struct bd bd;

Segundo ponto, o "erro"

64:2 C:WINDOWSDesktopC++bd.cpp [Warning] no newline at end of file

não é erro, é apenas um aviso...

E uma observasão, conio.h não é padrão do gcc

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts