Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 08-nov-2007, 16:35   #1 (permalink)
Fhenix666 ha deshabilitado el karma
 
Avatar de Fhenix666
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Busqueda Ciclo infinito ... Hasta precionar una tecla

Hola ke tall...

quiero hacer un programa en c estandar, sobre linux que este realizando modificaciones en un archivo de texto indefinidamente en un ciclo infinito hasta ke yo presione una tecla.

El procedimiento es el siguiente:

tengo dos archivos: Arch01 Arch02... en los que escribiré datos (tomemos 0s y 1s como ejemplo) en dos columnas la columna 1 es el dato y la 2 es "código de error". los mismos datos en el otro archivo.

en si son 4 operaciones que se estaran repitiendo indefinidamente. y entre cada operacion debe poderse generar la interrupcion............el paro del ciclo al precionar una tecla...

............posible Interrupción.
1. grabar en el archivo 1 el dato. (columna 1)
............posible Interrupción.
2. grabar en el archivo 1 el código de error. (columna 2)
............posible Interrupción.
3. grabar en el archivo 2 el dato. (columna 1)
............posible Interrupción.
4. grabar en el archivo 2 el código de error. (Columna 2)
............posible Interrupción.


no se como hacer un ciclo infinito ,,, que este circulando hasta que pecione una tecla el usuario...AYUDA

Última edición por Fhenix666; 08-nov-2007 a las 16:44.
Fhenix666 está desconectado   Responder Citando
Antiguo 08-nov-2007, 17:29   #2 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.154
Re: Ciclo infinito ... Hasta precionar una tecla

Yo lo haría de la siguiente forma:

#define TRUE 1
#define FALSE 0

...

char caracter;

printf ( "Va a comenzar un proceso. Desea continuar? S - N: " ) ;
scanf ( "%s", &caracter );

while ( TRUE )
{
if ( caracter == 'N' )
{
break;
}
else
{
printf ( "Se ejecutaria la instruccion 1\n" );
}

printf ( "Desea continuar con el proceso iniciado? S - N: " );
scanf ( "%s", &caracter );

if ( caracter == 'N' )
{
break;
}
else
{
printf ( "Se ejecutaria la instruccion 2\n" );
}

printf ( "Desea continuar con el proceso iniciado? S - N: " );
scanf ("%s", &caracter );

}

Espero que te sirva. Saludos!.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club

Última edición por mariano_donati; 08-nov-2007 a las 17:31. Razón: cambiar unas líneas del código
mariano_donati está desconectado   Responder Citando
Antiguo 08-nov-2007, 19:31   #3 (permalink)
Fhenix666 ha deshabilitado el karma
 
Avatar de Fhenix666
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Re: Ciclo infinito ... Hasta precionar una tecla

Mil gracias por el aporte,, es buenoooo....

pero la idea es que no evalué por medio de preguntas,,,,
estoy tratando de hacerlo con procesos hijos... ke un proceso hijo aga las operaciones mientras el padre espera .... a que preciones una tecla perooo creooo ke no me ayuda mucho estooo... por que sigo sin lograr que se siga haciendo las operaciones solitas....

necesito una rutina que este indefinidamente ciclada... hata ke precione una tecla... no ete pregunte si deseo continuar............ es decir el usuario solo interactua para detener el proceso con un solo entreeeeerrr o otra tecla.
Fhenix666 está desconectado   Responder Citando
Antiguo 08-nov-2007, 21:00   #4 (permalink)
mariano_donati tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.154
Re: Ciclo infinito ... Hasta precionar una tecla

Ahora estoy entendiendo un poco más. No sirve de mucho el código que te deje. Dejame pensarlo un rato, soy novato en esto de C, pero me interesa el desafío que propone lograr hacer eso. Después te digo a ver que salió.
__________________
En el este y el oeste, en el Norte y en el sur, brilla la blanca y celeste, la academia Racing Club
mariano_donati está desconectado   Responder Citando
Antiguo 08-nov-2007, 22:51   #5 (permalink)
Fhenix666 ha deshabilitado el karma
 
Avatar de Fhenix666
 
Fecha de Ingreso: septiembre-2007
Mensajes: 8
Re: Ciclo infinito ... Hasta precionar una tecla

Que biennn...mariano_donati...

No pude con los procesos hijossss....

miraaa logre estoooo pero aun mo me gusta como keda...Manejando Señalesss

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

int car = 0;

void manejo(int a)
{
/////////////////////pero esto no me funciona como kierooo
---- car = getchar();
---- printf("car %d",car);
---- if(car == 1)
---- {
-------- printf("\nFin del Programa...");
---------- car=1;
---------}
----- else
----- car=0;

//////////////////si dejo solo
//car=1;
////////////si funciona se salee y yaaaaaaa pero kiero tener la opcion de decidir si me salgo o continuo.........

}

int main(void)
{
----- int l = 0;
----- signal(SIGINT, manejo);

----- while( car != 1 )
----- {

----- printf("%d.\n", l);
----- ++l;
----- l = (l + 1) % 60000;
----- }
}
Fhenix666 está desconectado   Responder Citando
Antiguo 09-nov-2007, 07:58   #6 (permalink)
MaxExtreme ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Re: Ciclo infinito ... Hasta precionar una tecla

Varias cosillas:

POSIX no es parte del estándar de C.
Tienes una etiqueta CODE para poner código.
¿Por qué escribes arrastrando la última letra de cada palabra?
MaxExtreme está desconectado   Responder Citando
Antiguo 09-nov-2007, 08:28   #7 (permalink)
m4xp0wer ha deshabilitado el karma
 
Avatar de m4xp0wer
 
Fecha de Ingreso: septiembre-2007
Mensajes: 53
Re: Ciclo infinito ... Hasta precionar una tecla

El tema sería que el proceso hijo fuera el que escribe en el fichero. Lo que podías hacer es que el padre simplemente cree el hijo y espere un enter. Al recibir el enter, envíe una señal de usuario (SIGUSR1 por ejemplo) al proceso hijo. La rutina debería ser algo de este estilo
void rsSIGUSR1()
{fin=1;}
y la comprobación en el bucle de escritura while (!fin)
m4xp0wer está desconectado   Responder Citando
Antiguo 09-nov-2007, 15:55   #8 (permalink)
erick_arcini tiene algunos puntos positivos de karma
 
Avatar de erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco, Estado de México
Mensajes: 1.383
Enviar un mensaje por MSN a erick_arcini Enviar un mensaje por Skype™ a erick_arcini
Re: Ciclo infinito ... Hasta precionar una tecla

Cita:
Iniciado por MaxExtreme Ver Mensaje
...
¿Por qué escribes arrastrando la última letra de cada palabra?
Es que no leíste bien el post
__________________
El que ríe al último, generalmente es el más idiota... John Lennon
erick_arcini esta en línea ahora   Responder Citando
Antiguo 10-nov-2007, 05:04   #9 (permalink)
MaxExtreme ha deshabilitado el karma
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Re: Ciclo infinito ... Hasta precionar una tecla

Cita:
Iniciado por erick_arcini Ver Mensaje
Es que no leíste bien el post
Touché ;)
MaxExtreme está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 11:12.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93