Autor
|
Tema: system ("pause"); (Leído 7,186 veces)
|
ductum fusti percusit
Desconectado
Mensajes: 8
Clubbed to death
|
Se puede hacer que al poner system ("pause"); dentro de un bucle anidado, haya que poner una palabra o letra específica para que continúe ejecutándolo? Gracias.
|
|
|
En línea
|
|
|
|
daryo
|
|
|
« Última modificación: 29 Marzo 2015, 22:23 pm por daryo »
|
En línea
|
buenas
|
|
|
ductum fusti percusit
Desconectado
Mensajes: 8
Clubbed to death
|
Se me olvido decir que era en c no en c++.
|
|
|
En línea
|
|
|
|
daryo
|
bueno si te refieres a evitar el enter y solo haga falta presional una tecla no se puede en c++/c estandar tendrias que usar una herramienta externa (ncurses,conio) o la api de windows .No se muy bien como se haria en linux.
hay muchos ejemplos en internet.
|
|
|
En línea
|
buenas
|
|
|
mimel
Desconectado
Mensajes: 3
|
Amigo, acabo de encontrar la solución a eso, como en linux no recibe el system("pause"); entonces toca hacer un pequeño ciclo con el getchar y es el siguiente: getchar(); while (getchar() != '\n' ) ; un programa mas sencillo donde lo ejecuta mejor: #include <stdio.h>
int main(int argc, char *argv[]) { int i; for (i = 0; i < 3; i++) { printf("i = %d\n", i); printf("Presione enter para continuar: ... "); while ( getchar() != '\n') ; } printf("\n\n"); printf("Esto es todo!!\n"); printf("presiona enter para terminar!! (ironico, no es cierto?) ..."); while (getchar() != '\n') ; printf("\n\n"); printf("esto es todo :D\n"); } PERO en un programa mas complejo debes leer antes el getchar: #include <stdio.h>
int main(int argc, char *argv[]) { int valor_kilo,i,kilos,descuento,total,ganancias=0; printf("Ingrese el valor por kilo de naranjas: "); scanf("%d",&valor_kilo); for(i=1;i<5;i++) { system("clear"); printf("=================CLIENTE %d=========================\n",i); printf("Digite la cantidad de kilos de naranjas compradas: "); scanf("%d",&kilos); total=kilos * valor_kilo; if(kilos >10) { descuento = total * 0.10; total = total - descuento; printf("El cliente compro: %d kilos.\nDescuento del 10(%) es de: %d.\nTotal a pagar: $%d\n\n",kilos,descuento,total); } else{ printf("El cliente compro: %d kilos.\nSin Descuento\nTotal a pagar: $%d\n\n",kilos,total); } ganancias = ganancias + total; printf("Presione una tecla para continuar: ..."); getchar();/*Aca lees el enter*/ while (getchar() != '\n' ) ; } system("clear"); printf("========================================================\n"); printf("las ganancias que recibio la tienda es de: $%d pesos",ganancias); } Espero que hallas entendido!
|
|
|
En línea
|
mimel implementador de software libre Estudiante de Desarrollo de Software Colombia-Huila-Neiva
|
|
|
sabeeee
Desconectado
Mensajes: 155
|
Sinceramente yo usaría solamente "getchar()" no se necesita mucho mas que eso. en C y C++.
|
|
|
En línea
|
"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él." Francis Bacon
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Se puede hacer que al poner system ("pause"); dentro de un bucle anidado, haya que poner una palabra o letra específica para que continúe ejecutándolo? No ya que el comando "pause" solo requiere de la pulsación de una tecla, nada mas. La operación la tienes que realizar de forma manual: 1) Indicas al usuario que debe introducir un determinado carácter o palabra para continuar. 2) Lees la entrada del usuario. 3) Verificas si es la correcta o no. Si se trata de un solo carácter puedes leer este con la función getchar, en el caso de una palabra con scanf. Para verificar la entrada si es un carácter simplemente utilizas el operador de comparación "==" mientras en el caso de una palabra utilizas la función strcmp. Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
NOIS
Desconectado
Mensajes: 67
|
Si quieres que se introduzca una palabra o cadena concreta puedes hacer algo muy sencillo: string str; cout << "Introduzca la clave para continuar: " << endl; while(str != "clave") { getline(cin, str); }
|
|
|
En línea
|
NOIS dev7
|
|
|
ductum fusti percusit
Desconectado
Mensajes: 8
Clubbed to death
|
Muchas gracias a todos ya lo he arreglado, es que no de la función getchar.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Cómo creo un "PostComment System" que se visualice en modo "TreeView"?...
.NET (C#, VB.NET, ASP)
|
Enja
|
0
|
3,084
|
18 Abril 2008, 13:31 pm
por Enja
|
|
|
System("pause"); de C en ASM[DUDA]
ASM
|
SLUGER
|
5
|
9,252
|
12 Junio 2009, 03:38 am
por SLUGER
|
|
|
Varias dudas C++: Volver todas las varibles a 0, alternativa a system("cls");...
Programación C/C++
|
Sauw
|
5
|
5,638
|
9 Diciembre 2010, 19:38 pm
por Littlehorse
|
|
|
Alternatica a conio.h y system("cls"); y system("clear"); ?
Programación C/C++
|
flacc
|
5
|
9,990
|
17 Diciembre 2010, 16:55 pm
por flacc
|
|
|
recursos visual basic, """"""proceso inmortal"""""
Análisis y Diseño de Malware
|
Dark4ngel
|
7
|
14,838
|
3 Noviembre 2011, 10:42 am
por Dark4ngel
|
|