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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Comando personalizado que limpie pantalla
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Comando personalizado que limpie pantalla  (Leído 4,483 veces)
el_lujo

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Comando personalizado que limpie pantalla
« en: 5 Septiembre 2014, 20:23 pm »

Saludos.
Estoy comenzando a estudiar programación.
Tengo la siguiente tarea:
Debo hacer una aplicacion en c++ que limpie la pantalla.
Requisitos:
-Que el comando que limpie la pantalla sea "limpiar".
-Que sin importar que se escriba mayuscula o minúscula haga la función sin reventarse.

Honestamente no se nada y el profesor lo que quiere es que investiguemos; se vale buscar ayuda porque en el curso se discutirá. Lo que no puedo es llegar sin el resultado.

Gracias de antemano.

Nota: Admito que según el reglamento no se hacen tareas. Solo  estoy interesado en la ayuda de cómo debo interpretar usar una palabra como comando.

Gracias de nuevo.


« Última modificación: 5 Septiembre 2014, 20:43 pm por el_lujo » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Comando personalizado que limpie pantalla
« Respuesta #1 en: 5 Septiembre 2014, 20:42 pm »

Supongo que system("cls"); o system("clear"); no vale, no?

Puedes escribir 100 saltos de linea, o invocar a la Api del SO para limpiar la consola.


En línea

el_lujo

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Comando personalizado que limpie pantalla
« Respuesta #2 en: 5 Septiembre 2014, 20:51 pm »

Gracias por responder.

No vale de esa manera. Así se lo expusieron algunos de los compañeros.

En realidad, lo que tenemos que aprender es a crear una instrucción que haga lo mismo que system("cls") sin importar las mayusculas o minusculas.



 Bueno.
Debo esforzarme.
Reduciré la situación con lo siguiente:
Cómo controlo que lo que yo digite en mayusculas se convierta en minusculas?
« Última modificación: 5 Septiembre 2014, 21:46 pm por Eternal Idol » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Comando personalizado que limpie pantalla
« Respuesta #3 en: 5 Septiembre 2014, 21:03 pm »

Estoy comenzando a estudiar programación.
Tengo la siguiente tarea:
Debo hacer una aplicacion en c++ que limpie la pantalla.
Requisitos:
-Que el comando que limpie la pantalla sea "limpiar".
-Que sin importar que se escriba mayuscula o minúscula haga la función sin reventarse.
Te piden que desarrolles un programa que acepte un argumento mediante la linea de comandos, verifique que sea igual a "limpiar", "LIMPIAR", "Limpiar", etc. (no hay distinción entre mayúsculas y minúsculas) y finalmente realice la operación indicada (limpiar la pantalla).

Para el primer paso utiliza el motor de búsqueda para revisar los temas relacionados con el paso de argumentos mediante la linea de comandos.

Para el segundo de nuevo utiliza el motor de búsqueda pero ahora para encontrar temas relacionados con las funciones tolower y toupper.

El ultimo paso no se debería realizar ya que si apenas empiezas deberías estar enfocado en la base (C++ estándar) y no en como realizar una operación especifica del SO (coméntale eso en buen plan a tu profesor).

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
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Comando personalizado que limpie pantalla
« Respuesta #4 en: 5 Septiembre 2014, 21:26 pm »

http://support.microsoft.com/kb/99261/es

Ahí te da una explicación de como hacerlo (Windows).

Si quieres hacerla más corta, puedes escribir 100 lineas en blanco, y luego colocar el cursor en el 0,0 (en el link, en el último código, abajo, aparece cómo hacerlo).


Acerca de lo de escribir en minúsculas... Modificarlo al tiempo en que lo escribes?
En línea

el_lujo

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Comando personalizado que limpie pantalla
« Respuesta #5 en: 10 Septiembre 2014, 04:38 am »

Saludos, amigos.

Fuente de lo que el profesor nos puso:
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>


void Mayusc_Minusc(char *s) //convertir de Mayuscula a minuscula
{
   for( ; *s != '\0' ; s++)
   {
      if(*s >= 'A' && *s <= 'Z'){
         *s += (char)32;
      }
      
   }
}




int main(){
   char limpiar[20] = "limpiar", cerrar[15] = "salir", limpiarLinux[15] = "clear", limpiarWind[15] = "cls", ayuda[15] = "help",cadena[20],dirwindow[15]="dir",lslinux[15]="ls",dirdominica[15]="directorio";
   printf("\t\t***************************************************\n");
   printf("\t\t\t Programa Limpiar Pantalla \n \t\t\tPara Cerrar Escribir (salir)\n");
   printf("\t\t***************************************************\n\n");
   
   do{
      printf(">> ");
      gets(cadena);
   (   Mayusc_Minusc(cadena);)*/
      if(strcmp(cadena,limpiar) == 0 || strcmp(cadena,limpiarLinux) == 0 || strcmp(cadena,limpiarWind) == 0){
         system("cls");
         printf("\t\t************************************************\n");
         printf("\t\t\t Pantalla(Ms-DOS)(Terminal)(Domincana)\n");
         printf("\t\t************************************************\n\n");      
      }else if(strcmp(cadena,ayuda) == 0){
         system("cls");
         printf("\t\t********************************************\n");
         printf("\t\t Comandos Del Sistema: \n");
         printf("\t\t (limpiar)(clear)(cls) <--> Comando para limpiar\n");
         printf("\t\t (salir) <--> Comando para salir\n");
         printf("\t\t (help) -- Comando para ayuda\n");
         printf("\t\t (dir)(ls)(directorio) <----> Comando para directorio\n");
         printf("\t\t********************************************\n\n");
      }else if(strcmp(cadena,dirwindow) == 0 || strcmp(cadena,lslinux) == 0 || strcmp(cadena,dirdominica)){
         printf("\t\t********************************************\n");
         printf("\t\t\t Lista de Archivos en El Directorio\n");
         printf("\t\t********************************************\n");
         system("dir");
      }else{
         printf("\t!!! ERROR Comando no Validos.. Entrasr a (help) para ayuda\n");
      }
      
      
   }while(strcmp(cadena,cerrar) != 0);
   
   
}

Ahora bien, lo que él pide es controlar los espacios en blanco accidentales que cuando se digite cualquier opción en el programa.

Estuve googleando y no pude encontrar ayuda o simplemente no estoy haciendo la pregunta correcta.

Gracias.
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Comando personalizado que limpie pantalla
« Respuesta #6 en: 10 Septiembre 2014, 10:24 am »

Y digo yo, ¿no se puede hacer que cuando introduzca la orden se ejecute system("cls") o system("clear"), según corresponda?

Un saludo
En línea

el_lujo

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Comando personalizado que limpie pantalla
« Respuesta #7 en: 10 Septiembre 2014, 16:20 pm »

Gracias, Caster por el interés en ayudarme.
Lo que sucede, Caster, es que estamos en tratar de entender cómo funcionan los sistemas operativos.  Eso es sólo para darnos a entender el por qué no debemos usar el comando interno del lenguaje, sino hacer una aplicación que simule los comando internos del lenguaje.

Adjunté el fuente del programa que fue hecho por el profesor en el aula; el reto es ahora que cuando elijamos una de las opciones dentro de la corrida del programa, ignore los espacios en banco.

Ejemplo: Si elegimos "cls" y por error digitamos: "  cls" o "cls    " en el prompt, haya una función que ignore esos espacios en blanco, siempre y cuando lo digitado corresponda a una de las opciones.

Espero haber sido explícito.

Gracias.
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Comando personalizado que limpie pantalla
« Respuesta #8 en: 10 Septiembre 2014, 16:44 pm »

Pues si no me equivoco, el código que has aportado hace lo que he dicho, ejecuta el comando del SO y no hace nada más.

Un saludo
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Comando personalizado que limpie pantalla
« Respuesta #9 en: 10 Septiembre 2014, 17:13 pm »

Pues si no me equivoco, el código que has aportado hace lo que he dicho, ejecuta el comando del SO y no hace nada más.

Un saludo

doy fe de ello:

Código
  1. if(strcmp(cadena,limpiar) == 0 || strcmp(cadena,limpiarLinux) == 0 || strcmp(cadena,limpiarWind) == 0){
  2.  system("cls");
  3.  // ...
  4. }else if(strcmp(cadena,ayuda) == 0){
  5.  system("cls");
  6.  // ...
  7. }else if(strcmp(cadena,dirwindow) == 0 || strcmp(cadena,lslinux) == 0 || strcmp(cadena,dirdominica)){
  8.  // ...
  9.  system("dir");
  10. }else{
  11.  printf("\t!!! ERROR Comando no Validos.. Entrasr a (help) para ayuda\n");
  12. }
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines