2
In the file . h:
struct conectores {
int entrada[n];
int busca[n];
} conect;
struct connectors conect;
void cadastra_entrada(FILE *fp, int cont, struct conectores conect, int entrada[n]);
Function:
void cadastra_entrada(FILE *fp, int cont, struct conectores conect, int entrada) {
int i;
// Preciso fazer com que não sobrescreva o arquivo também cada vez que entre na função
for(i = 0; i < n; i++) {
printf("Cadastrando:\n");
fprintf(fp, "%d ", conect.entrada[i]);
}
fprintf(fp," - padrão ");
fprintf(fp, "%d", cont);
fprintf(fp, "\n");
}
Function call:
int main() {
int i, aux, op = 0;
int dig = 0;
int cont = 0;
int fim = 1;
FILE *fp;
struct conectores conect;
fp = fopen("conectores.txt", "rw");
// Leitura dos conectores
aux = 0;
for (i = 0; i < n; i++) {
setbuf(stdin, NULL);
scanf("%d", &conect.entrada[i]);
printf("%d ", conect.entrada[i]);
// Verifica se é 0 0 0 0 0
if (conect.entrada[i] == 0) {
aux++;
if (aux == n) {
fim = 0;
printf("FIM\n");
} else {
fim = 1;
}
}
}
printf("Saí do for\n");
while (fim != 0) {
// Pega cada caracter e armazena em dig, busca se tem no arquivo
while ((dig = fgetc(fp)) != EOF) {
printf("Entrei no while\n");
i = 0;
conect.busca[i] = dig;
if (conect.busca[i] == conect.entrada[i]) {
i++;
} else {
printf("Conector não encontrado. Gostaria de cadastrá-lo? s(1) ou n(2) \n");
scanf("%d\n", &op);
switch(op) {
case(1):
cont = cont++;
cadastra_entrada(fp, cont, conect, entrada);
break;
case(2):
printf("Novo padrão não cadastrado\n");
//imprime_inverso();
return 0;
break;
default:
printf("Opção inválida\n");
break;
}
// Pula pra próxima linha para procurar na próxima linha ?????
fscanf(fp, "\n");
}
// inverte_valores(conect);
// imprime_inverso();
}
printf("t\n");
fclose(fp);
}
}
But it still gives the message that the entry is not declared. I tried with pointer, as vector, only as 'int input' and not yet.
Thank you.
But you did include do h in the header of your file . c? Example:
#include "Lib.h"
– George Wurthmann
Uhum :/ If I wasn’t going to be giving much more errors, struct etc. But it’s only this variable that I’m not able to pass by reference.
– mahr
Shows the function that makes the call from
cadastra_entrada()
; the variableentrada
must be defined within that function (or be global, which is a bad idea)– pmg
It is in the main same. I edited the description of the question with the program.
– mahr
In function
main()
there is no variableentrada
. What exists isconect.entrada[X]
.– pmg