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.