control escolar

Páginas: 18 (4400 palabras) Publicado: 29 de junio de 2013
Validación de tipos de datos en C++
Por esutoraiki el 29 de Noviembre de 2010 con 12,175 visitas
Tecnologia y otros Otros tutoriales por esutoraiki.

Estaba aprendiendo un poco de C++ cuando decidí armar un programa que creara gráficos de tortuga. Al empezar a desarrollarlo arme un menú para acceder a las opciones de manera numérica y me tropecé con el problema de validar que el datointroducido fuera de tipo numérico.

Indagando un poco por Internet lo primero que me encontré fue una función para validar la introducción de dígitos: isdigit de la librería ctype.h ó cctype. El problema con dicha función es que, aunque valida el tipo, solo lo hace en caso de ser un dígito, pero no en el caso de ser un número con más de 1 solo dígito.

Leyendo un poco, encontré que tal vez elproblema se podía resolver utilizando aritmética binaria y manejo de bits de error de la librería iostream. Encontré este tutorial: Controles de flujo (Parte 2). El tutorial me pareció muy adecuado, pero al probarlo note que era necesario realizar dos Enter para que funcionara de manera adecuada.

El problema del Enter surge por la instrucción:
Código :
cin.ignore(1024, '\n');
Aparte de dichoproblema, esta instrucción y está comparación me parecieron un poco alocadas para este problema:
Código :
estado = cin.rdstate();
if ((estado & ios::failbit) == ios::failbit)
Me pareció que la mejor manera de solucionarlo era a partir del funcionamiento de los flujos en c++.

Decidí por mi cuenta investigar un poco más y encontré el manejo de estado de error de flujo. Obteniendo comoresultado el siguiente código:
Validar datos entrados por el usuario en C++
Código :
/* Validación de tipos de datos sin usar aritmética binaria en c++
   Autor: John Sánchez Alvarez
   Este código es libre de usar y modificarse*/

#include

using namespace std;

int main (){
   int numero, cont = 0;
   bool continuar;

   do {
      continuar = false;
      cin.clear();
     if(cont > 0) cin.ignore(1024, '\n');
      cout > numero;
      cont++;
      if(cin.fail() && cin.rdstate()){
         cout >
Secuencias de escapes
Meta-carácteres
Clases de carácteres
Repeticiones
Alternativas y agrupacion
Especificar la posicion de coincidencia
Construir una expresion regular
Las expresiones regulares, o REGEX, son como un pequeño lenguaje de programacion para crearpatrones (una expresion regular es lo mismo con patron, pauta, palabra que quiere comparar) muy potentes. Emplean una notacion especial para crear los patrones que se utilizan para comparar los valores (o parte de los valores) que proporcionan. En el contexto de una expresion regular, determinados caracteres tienen un significado especial, lo que nos permite ampliar o reducir las comparaciones ensubcadenas de datos. Algunas expresiones regulares buscan patrones que pertenezcan a un grupo especifico, mientras que otras buscan caracteres que se repitan una serie de veces. Las expresiones regulares deben cumplir determinadas reglas sintacticas, que veremos mas adelante.
En principio se puede buscar una cadena concreta dentro de otra utilizando la funcion substr(). Pero imaginese quedesconoce la cadena exacta que debe buscar o, queremos buscar un texto que responda a un cierto esquema, como por ejemplo: buscar aquellas palabras que comienzan con http: y finalizan con una \, o buscar palabras que contengan una serie de números consecutivos, etc.; es en estos casos cuando tenemos que utilizar las expresiones regulares. La subcadena que buscamos en el texto es lo que se llama unpatrón y se construye encerrando entre dos barras inclinadas ( / ) una serie de caracteres normales y símbolos especiales llamados tambien meta-caracteres.
1. $a = "/^\d\d\d\d\d$/";
Aunque las expresiones regulares se pueden construir con muchas palabras, mas a menudo se usara una combinacion de letras y simbolos especiales (meta-carácteres) para definir un patron que esperamos ajustar. Las...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Control Escolar
  • Control Escolar
  • Control escolar
  • Control escolar
  • Guia de salud control escola
  • normas de control escolar
  • Participacion escolar en el control del dengue
  • Modulo de control escolar

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS