elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No se que hace éste programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No se que hace éste programa  (Leído 1,972 veces)
Thulsa_Doom

Desconectado Desconectado

Mensajes: 2


Ver Perfil
No se que hace éste programa
« en: 15 Agosto 2010, 19:24 pm »

Hola a todos, soy nuevo en el foro, he llegado a el buscando alguien que comprenda el lenguaje C mejor que yo para ver si me ayuda.

Resulta que estoy estudiando por mi cuenta éste lenguaje y haciendo unos ejercicios de un libro que me he comprado, viene un código que la verdad es que no se que se supone que debe hacer.

el ejercicio dice que es un contador de palabras, líneas y caracteres de entrada, pero lo ejecuto y no veo que haga nada por mucho que escriba en el teclado.

el complilador que utilizo es el kate de linux, para ser más concreto el ubuntu 9.10

Código:

//Conteo de palabras

#include <stdio.h>
#define IN 1 /*en una palabra*/
#define OUT 0 /*fuera de una palabra*/

/*cuneta líneas. palabras y caracteres de la entrada*/

main(){
       int c, nl, nw, nc, state;
       state = OUT;
       nl = nw = nc = 0;
       
    while((c = getchar()) != EOF){
++nc;
      if(c == '\n')
++nl;
     
    if(c == ' '||c == '\n' || c == '\t')
state = OUT;
   
   
    else if(state == OUT){
state = IN;
  ++nw;
       }
    }
    printf("%d %d %d\n", nl, nw, nc);
}


Gracias de ante mano



En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: No se que hace éste programa
« Respuesta #1 en: 15 Agosto 2010, 19:40 pm »

Al programa no se le ven errores de sintaxis.

Excepto porque no utilizas la sentencia return y no declaras main como:

Código:
int main(void)
{
    /* Codigo */
    return 0;
}

El código cuenta caracteres, palabras y lineas.

Su ejecución termina cuando tecleas CTRL + D en unix*/GNU/Linux, y en Windows con CTRL + Z.

Kate no es un compilador, es un IDE, probablemente estés usando GCC.

Saludos.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: No se que hace éste programa
« Respuesta #2 en: 15 Agosto 2010, 19:43 pm »

Hola, en windows el programa funciona desde la consola asi (suponiendo que el programa se llama cuentapalabras y text1 es el archivo de texto con las letras y palabras que quieres contar:
Citar
c:\ruta\type text.txt | cuentapalabras

Supongo que en linux seria:
Citar
$: cat text.txt | cuentapalabras

Saludos
En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
Thulsa_Doom

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: No se que hace éste programa
« Respuesta #3 en: 15 Agosto 2010, 23:42 pm »

Al programa no se le ven errores de sintaxis.

Excepto porque no utilizas la sentencia return y no declaras main como:

Código:
int main(void)
{
    /* Codigo */
    return 0;
}

El código cuenta caracteres, palabras y lineas.

Su ejecución termina cuando tecleas CTRL + D en unix*/GNU/Linux, y en Windows con CTRL + Z.

Kate no es un compilador, es un IDE, probablemente estés usando GCC.

Saludos.



Upssssss, tienes razón es el GCC,

El problema que tenía es que cuando ejecutaba el programa me ponía a escribir en la consola y cuando le daba a la tecla intro se saltaba a una nueva línea pero no mostraba nada, la línea se queda en blanco y preparada para seguir escribiendo y claro no entendía que hacía el programa.
al apretar lo que me has dicho, lo de control + D ya aparece el resultado.

no he utilizado return por que este es un programa que viene en un libro de programación, pero como siempre no explican casi nada y luego me toca a mi darme con la cabeza en el teclado horas y horas por que no entiendo lo que pasa.

como pueden ver estoy muy verde en lo del lenguaje C, así que pido un poco de paciencia y dar las gracias por vuestra ayuda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Me va a dar algo con este programa... no logro ver pq no me hace el gets
Programación C/C++
lol_fallen 2 1,749 Último mensaje 7 Febrero 2012, 21:15 pm
por naderST
Web hackeada, que hace este código?
PHP
playman 4 2,427 Último mensaje 3 Diciembre 2012, 17:29 pm
por aixeiger
Coreeccion de este programa
Dudas Generales
JoneDawson 0 2,290 Último mensaje 4 Diciembre 2020, 13:40 pm
por JoneDawson
¿Cómo logro que este programa genere un grafo de lo que hace?
Programación General
Tachikomaia 0 3,524 Último mensaje 2 Octubre 2023, 07:06 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines