(Juan Alejandro Knight) wrote:
> cuando me refiero a "adentro" es el uso de scope de una funcion estructurada
> cuando a un if un le pones {...} es para que se ejecute lo de adentro _solo_
> si se cumple la condicion
> o que haces es similar a lo siguiente
> if (i == 0) {
> if (i > 0) { /*nunca va a ser verdadero esto porque i es cero*/
> .....
> }
> }
>
> lo desarrollo mas claro abajo, comentando cual es el error e indentando para
> mayor claridad
>
> while(1)
> {
> ....
> if (((strcmp ("/help", buffer_c) == 0)) || ((strcmp ("/h", buffer_c) ==
> 0)))
> {
> {/*llave innecesaria*/
> printf("Help ... /quit --> cliente cierra el socket\n");
> }/*llave innecesaria*/
> if (strcmp("/quit", buffer_c) == 0)
> { /*nunca entra a este if porque buffer_c es /help o /h => esta dentro
> del if anterior*/
> printf("Se ha salido del chat\n");
> close(sockfd);
> }
> }
> ...
> }
>
> solucion:
> sacar el if de quit afuera y juntar con un else
>
> while(1)
> {
> ....
> if (((strcmp ("/help", buffer_c) == 0)) || ((strcmp ("/h", buffer_c) ==
> 0)))
> { /*esta llave se puede eliminar junto con la siguiente porque adentro hay
> una sola instruccion*/
> /*las llaves innecesarias se eliminaron*/
> printf("Help ... /quit --> cliente cierra el socket\n");
> }
> else if (strcmp("/quit", buffer_c) == 0)
> { /*este if salio afuera del if anterior y se conecto con un else*/
> printf("Se ha salido del chat\n");
> close(sockfd);
> }
> ...
> }
>
alejandro, todavia sigo con dolores de cabeza. A pesar de estas
modificaciones que he hecho, todavia no me toma los "/quit" "/h"
"help"
while(1)
{
memset(buffer_c, 0, sizeof(buffer_c));
printf("Mensaje para enviar al servidor -> ");
fgets(buffer_c, sizeof(buffer_c), stdin);
if (((strcmp ("/help", buffer_c) == 0)) || ((strcmp ("/h",
buffer_c) == 0)))
{
printf("Help ... /quit --> cliente cierra el
socket\n");
}
else if (strcmp("/quit", buffer_c) == 0)
{
printf("Se ha salido del chat\n");
close(sockfd);
}
n = write(sockfd, buffer_c, strlen(buffer_c)+1);
if (n <= 0) {
printf("error en write()");
close(sockfd);
exit(-1);
}
printf("Mensaje Ok\n");
}
--
/* Leonardo Rios
* rios[dot]lj[at]gmail[dot]com
*/
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion