AYUDA programa facil

k puedo hacer para k funcione bien este programa en c++?:
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
char c;

cout << "Introduzca caracter:" << endl;
cin >> c;
if (('A' <= c <= 'Z')|('a' <= c <= 'z'))
{
cout << "Es letra" << endl;
}
else if (c=='\')
{
cout << "Error" << endl;
}
else
{
cout << "Caracter incorrecto" << endl;
}
system("Pause");
return 0;

tiene k salir escrito Es letra cuando el caracter este entre la a y la z o entre la A y la Z, Error cuando el caracter sea '\'. y Caracter incorrecto para cualquier otra cosa. pero ponga lo k ponga siempre sale Es letra.
ademas pongo el caracter '\' y me da error en el compilador.¿ como se pone el or en c++?

ayuda!!! [triston]
gracias por adelantado.
La barra inversa ( \ ) es un caracter de escape usado para símbolos especiales, como saltos de linea (\n) o fin de cadena (\0), por tanto, si pones una \ el compilador espera el segundo caracter que identifique el símbolo especial. Para poner una \ has de poner dos barras seguidas '\\'.

Por otro lado, la doble comparación no es aceptado como un estándar C++, por tanto X < Y < Z has de simbolizarlo como una doble comparación, (X < Y) && (Y < Z).

Finalmente, evita usar una sola barra ( | ) para indicar ó en vez de la doble barra ( || ), pues puede confundirse con la operación aritmética OR, y aunque parece igual, en algunos casos da problemas.

Aquí te dejo el código modificado.
#include <iostream>
#include <cstdlib>

using namespace std;

int main() {
   char c;

   cout << "Introduzca caracter:" << endl;
   cin >> c;
   if ((('A' <= c) && (c <= 'Z')) || (('a' <= c) && (c <= 'z'))) {
      cout << "Es letra" << endl;
   } else if (c == '\\') {
      cout << "Error" << endl;
   } else {
      cout << "Caracter incorrecto" << endl;
   }
   system("Pause");
   return 0;
}
muchas gracias por las respuestas y el codigo corregido, la proxima vez no cometeré esos errores jeje [beer] [oki]
3 respuestas