Falha de segmentação
Alguém pode me ajudar a descobrir o que está causando está falha de segmentação?
É uma calculador pós fixada, que lê os dados de um arquivo (arqEntrada) calcula e coloca o resultado em outro arquivo(arqSaida)!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char* argv[]){
int j, aux, vetAux[2];
char snumero[5];
FILE *fp;
fp = fopen("arqEntrada", "r");
if (fp == NULL){
perror ("Erro ao abrir o arquivo para leitura.\n");
return(-1);
}
while ((fgets(snumero, sizeof(snumero), fp)) != NULL){
printf("%s", snumero);
if ((snumero == "+") || (snumero == "-") || (snumero == "*") || (snumero == "/")){
if (snumero == "+") aux = vetAux[j] + vetAux[j - 1];
if (snumero == "-") aux = vetAux[j] - vetAux[j - 1];
if (snumero == "*") aux = vetAux[j] * vetAux[j - 1];
if (snumero == "/") aux = vetAux[j] / vetAux[j - 1];
vetAux[j] = aux;
j = 0;
}else{
vetAux[j] = atoi(snumero);
j++;
}
}
fclose(fp);
fp = fopen("arqSaida", "w");
if (fp == NULL){
perror ("Erro ao abrir o arquivo para leitura.\n");
return(-1);
}
printf("Resultado: %i\n", vetAux[j]);
fprintf(fp, "%i\n", vetAux[j]);
fclose(fp);
return(0);
}
Estou utilizando o "arqEntrada" com os seguintes dados:
1
2
+
4
*
No "arqSaida" tem que chegar a resposta 12.
A falha está acontecendo na linha 19, mas não estou conseguindo descobrir a causa dela.
Discussão (2)
Carregando comentários...