Se a palavra do arquivo de entrada for igual a palavra tesoura deve-se imprimir um SIM no arquivo de entrada , caso contrário imprimir um NAO. Isso tudo usando Lista Encadeada.
Eu criei a lista encadeada, e consigo ler do arquivo de entrada. Mas na hora de fazer a comparação todas as palavras estao sendo impressas com SIM no arquivo de saida, mesmo sendo diferentes.. o que pode estar errado??
tenho esse codigo ae embaixo. peço ajuda.. obrigado.
#include <stdlib.h> #include <stdio.h> #include <string.h> #define Null 0 int main(){ char lexema[100]; char x[100]; int i; struct node{ char num[100]; struct node *next; } *start, *p; start = NULL; FILE *entra; // PONTEIRO PARA O ARQUIVO ENTRADA.TXT FILE *sai; // PONTEIRO PARA O ARQUIVO SAIDA.TXT strcpy (lexema,"tesoura"); entra = fopen("entrada.txt","r"); // ABRINDO ARQUIVO ENTRADA.TXT // INSERINDO DADOS DO ARQUIVO NA LISTA ENCADEADA while (!feof(entra)){ fgets(x,100,entra); p = start; start = (struct node *)malloc(sizeof(struct node)); for(i=0;i<20;i++) start->num[i] = x[i]; start->next = p; } // TERMINO DA INSERÇÃO NA LISTA ENCADEADA. sai = fopen("saida.txt","w");// ABRINDO ARQUIVO SAIDA.TXT // PESQUISANDO NA LISTA ENCADEADA E GRAVANDO EM ARQUIVO DE SAÍDA printf("\n\nGerado arquivo de saida!\n\n"); for (p > start; p != NULL; p = p->next){ // ANALISANDO ARQUIVOS DA LISTA ENCADEADA if(strcmp(p->num,lexema)){ fprintf (sai, p->num); fprintf(sai,"SIM\n"); } else{ fprintf (sai, p->num); fprintf(sai,"NAO\n"); } } // FIM DA ANÁLISE system("PAUSE"); }