Archivo leer problema de escritura

Escribí el siguiente código. Debería cambiar las tags con la factura pero mi código no hace nada. ¿Cuál puede ser el problema? Mi código es el siguiente:

#include  #include  int main () { FILE * pFile; char tag [6]; char code[20]="bill"; pFile = fopen ("example.asm","r+"); if (pFile==NULL) { perror("Error"); } else { while(!feof(pFile)) { fgets(tag,5,pFile); if((tag=="") && (!feof(pFile))) { fputs(code,pFile); } } } fclose(pFile); return 0; } 

No puede comparar cadenas utilizando el operador == , ya que comparará entre dos punteros, no las cadenas a las que apuntan, debe usar strcmp(tag,"") .

Como dice toda la gente en c para comparar cadenas, use strncmp o use pointers .

 #include  #include  int main () { FILE * pFile; char tag [6]; char code[20]="bill"; pFile = fopen ("example.asm","r+"); if (pFile==NULL) { perror("Error"); } else { while(!feof(pFile)) { fgets(tag,5,pFile); if((strncmp(tag, "") == 0) && (!feof(pFile))) { fputs(code,pFile); } } } fclose(pFile); return 0; } 

Por un lado, if (tag == "") no es correcto para C. Intente strcmp http://www.elook.org/programming/c/strcmp.html

Bueno, al menos necesitas cambiar esto.

 tag=="" 

a esto

 strncmp(tag,"",4) == 0