Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2007, 04:44
aLiSHa_FW
 
Fecha de Ingreso: agosto-2005
Mensajes: 76
Antigüedad: 19 años, 4 meses
Puntos: 0
problema al leer primer caracter y compararlo con otro

Hola, estoy empezando con c y c++ y tengo un problema que no consigo resolver. Quiero leer el primer carácter de un fichero y si es igual a "!" realizar otras operaciones.

Código:
      char firstch;
      FILE *input = fopen(argv[i],"r");
      firstch=getc(input);
      cout << "What gets: " << firstch << endl;
      cout << "What gets: " << &firstch << endl;

      if (&firstch == "!") {
          cout << "First char equal to !" << endl;
      }
      if (fclose(input)!=0) {
        printf("Error closing file\n");
      }
Estoy haciendo pruebas leyendo 3 ficheros, dos de ellos comienzan con ">" y otro con "!". Los resultados son estos:

What gets: >
What gets: >l

What gets: >
What gets: >l

What gets: !
What gets: !l

No detecta el último fichero que comienza con "!". Cuando cambio la comparacion de "if (&firstch == "!") {" por "if (firstch == "!") {" me aparece el siguiente error de compilación:

ISO C++ prohíbe la comparación entre puntero y entero
:: === Build finished: 1 errors, 0 warnings ===

Mi pregunta es cómo debo comparar el valor que lee el fichero con el carácter "!" para poder hacer otras operaciones? He leido manuales y cursos sobre C y C++ pero no entiendo muy bien porque no es posible ese tipo de comparaciones.

Un saludo y gracias de antemano.