Los foros del Guille

elGuille.hosting: La oferta avanzada:
.NET 2.0, SQL Server, 4000MB, 30GB transf. por 19.95 Eur al mes

Si no encuentras respuesta, puedes buscar en el sitio del Guille

Google
 
Selecciona el foro y pulsa en mostrar:     Mostrar 
De tu interés (algunos de los avisos publicados)

19/ene/2006
Antes de hacer una pregunta... te recomiendo que busques si ya tiene respuesta.
En la página de búsqueda he añadido una nueva opción para que busque en los que ya tienen respuesta correcta.

  Foro: C / C++.General Cantidad:  Desde:   Hasta:    Aplicar   Responder 
Respuestas a: 56864 - Codigo Inalcanzable.
IDAsuntoFechaNick 
56864 Codigo Inalcanzable.21/12/12 13:22Mr. VB 6   
Hola a todos:
No se porque hay veces en que cierto codigo no se ejecuta y no se porque y realmente me pone de malas. En este caso es el bloque if marcado con "AQUI", siempre se ejecuta el else pero no el if, aunque nTabs sea 9.

Este es el programa completo. La funcion main.
bool error = false; //No hay error.

if(argc == 2)
{
    FILE *pFicheroEntrada = fopen(argv[1],"r");

    if(pFicheroEntrada != NULL)
    {
        FILE *pFicheroSalida = fopen("Salida.txt","w");

        rewind(pFicheroEntrada);
        char str[100] = "";
        char ch = '\0';
        int i = 0;
        int nTabs = 0;
        int tab6 = 0;
        int tab8 = 8;

        do
        {
            for(i = 0,ch = fgetc(pFicheroEntrada);(ch !=
                 '\n') && (ch != EOF);++i,ch = fgetc(pFicheroEntrada))
                str[i] = ch;

            str[i] = '\n';

            for(int k = 0,nTabs = 0;k < i;++k)
            {
                if(str[k] == '\t')
                {
                    ++nTabs;

                    if(nTabs == 6)
                        tab6 = i;
                    else if(nTabs == <img src='imagenes/smiles/rie_gafas.png' border='0' alt='rie_gafas'
                         />
                        tab8 = i;
                }
            }
                
/*AQUI*/        if(nTabs == 9)
            {
                for(int k = 0;k <= tab6;++k)
                    fputc(str[k],pFicheroSalida);
                    
                for(int k = tab8 + 1;k <= i;++k)
                    fputc(str[k],pFicheroSalida);
            }
            else
            {
                for(int k = 0;k <= i;++k)
                    fputc(str[k],pFicheroSalida);
            }
        }
        while(ch != EOF);
            
        fclose(pFicheroEntrada);
        fclose(pFicheroSalida);
    }
    else
        error = true;
}
else
    error = true;

if(error == true)
    printf("Ha ocurrido un error.\n");
else
    printf("Depuracion exitosa.\n");

getchar();

return 0;
Muchas gracias

PD: ya me habia pasado antes aunque no recuerdo donde.

[Editado: Mr. VB 6, 21/12/2012 13:22:26]
[Mr. VB 6, 21/12/2012 13:23:33]
[Mr. VB 6, 21/12/2012 13:24:26]
IDAsuntoFechaNick 
56865 Re: Codigo Inalcanzable. (Resp: 56864)21/12/12 13:27Mr. VB 6   
Se me olvido decir que uso el Microsoft Visual Studio 2010.


Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias.

 
(c) Guillermo 'guille' Som, 2005-2018  - foros.elGuille v1.0.5.3 (23/Mar/2009 14:50 GMT +1)  - (ASP.NET 2.0 v2.0.50727.8799)
 
Usuarios activos: 139 - App. iniciada: 18/10/2018 13:15:34 GMT - La hora GMT del servidor es: 18/10/2018 16:31:43 GMT