Hola a todos.
He estado haciendo este programa, y lo que pretendo conseguir con esta porcion de codigo, es que al leer una cadena, me la vuelva a pedir siempre y cuando sea distinta de las palabras "ahorro" o "corriente". Aqui os dejo la parte del codigo.
do{leerCadena("tipoCuenta\n", variosClientes.Clientes[variosClientes.numClientes].tipoCuenta);
}while (strcmp(variosClientes.Clientes[variosClientes.numClientes].tipoCuenta, ("corriente"||"ahorro"))!=0);
El error que le programa me dice que da es: cannot convert 'bool' to 'const char*' for argument '2' to 'int strcmp(const char*, const char*)'|
No lo entiendo. Gracias.
<"corriente" || "ahorro"> es una expresión booleana, no es una cadena de caracteres <char*>. Tienes que comparar con una y después con la otra por separado. Suerte.
Como te comentan esta mal la sentencia, no puedes meter el operador or "||" en medio de la funcion strcmp lo correcto seria:
do{
}while (strcmp(str,"cadena 1")==0 || strcmp(str,"cadena 2")==0);
Edición se cambiaron los != por == ya que como estaba siempre daria verdadero.
Saludos!
Muchas gracias amigos. Solucionado!!!
Tengo la impresion que este do - while se ejecutara por siempre. La condicion es una tautologia.
Citar
do{
}while (strcmp(str,"cadena 1")!=0 || strcmp(str,"cadena 2")!=0);
Jajaja tienes razon, esperemos el usuario se de cuenta de eso. Acabo de corregir la respuesta anterior.