[C con Clase] Do While para verificar apertura de archivo.

Joaquín Pérez Valera joaquinperezvalera en gmail.com
Mar Nov 20 01:55:11 CET 2012


Hola Danis

Te agradezco mucho tu ayuda. Y bueno, esto lo resolví hace una semana
(y no mandé la solución, mal hecho de mi parte). Mucho te agradezco tu
ayuda. 

Es una versión diferente de lo que hice, me puse a buscar en foros
sobre lo que quería hacer y digamos que opté por usar el lado opuesto
de la moneda. El código que estaba escribiendo quedó así:

----------------

do 
{
cout << "Filename to open: ";
getline(cin, nombre_archivo);
  entrada.open(nombre_archivo.c_str());
  if (entrada.is_open()==0)
  {
  cout << "File not found, try again. " << endl;
     }
}
while (!entrada.is_open());  


-----------------

Aún así, probaré lo que me enviaste ya que algo parecido era lo que
tenía en mente.

Saludos y de nuevo gracias.


El Mon, 19 Nov 2012 12:00:03 +0100
cconclase-request en listas.conclase.net escribió:
> Envíe los mensajes para la lista Cconclase a
> 	cconclase en listas.conclase.net
> 
> Para subscribirse o anular su subscripción a través de la WEB
> 	http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> 
> 
> O por correo electrónico, enviando un mensaje con el texto "help" en
> el asunto (subject) o en el cuerpo a:
> 	cconclase-request en listas.conclase.net
> 
> Puede contactar con el responsable de la lista escribiendo a:
> 	cconclase-owner en listas.conclase.net
> 
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of Cconclase digest...". Además, por favor, incluya en
> la respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
> 
> 
> Asuntos del día:
> 
>    1. Re: (sin asunto) (Danis Ramirez Joseph)
>    2. Re: Do-while para verificar apertura de archivo...
>       (Danis Ramirez Joseph)
>    3. Re: (sin asunto) (José Luis Torre)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Sun, 18 Nov 2012 14:12:01 +0100
> From: Danis Ramirez Joseph <danisrjoseph en gmail.com>
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] (sin asunto)
> Message-ID: <E1Ta4fJ-0001Rp-Kh en ender.h3m.com>
> Content-Type: text/plain; charset=UTF-8
> 
> //Hola Johan,
> 
> //Aquí te dejo el programa funcionando, basado en lo que tu hiciste
> con algunas //modificaciones menores:
> 
> # include <stdio.h>
> # include <conio.h>
> 
> int main ()
> {
>    int claveRegistrada = 3456,
>        intentosRestantes = 3,
>        claveIngresada = 0;
> 	
> while(claveIngresada != claveRegistrada && intentosRestantes != 0)
>     {
>        printf("Ingrese su clave para continuar: ");
>        scanf("%d", &claveIngresada);
> 		
>        if(claveIngresada == claveRegistrada)
> 	{
>            printf("\n\n\t\tBienvenido\n");
> 	   getch();
> 	   return 0;
> 	}
>        else
>            printf("\nClave incorrecta, %d intentos restantes\n\n",
> --intentosRestantes); }		
> 	
> 	if (intentosRestantes==0)
> 	printf("\n\n\t\tCuenta bloqueada");
> 	
> 	getch();
> 	return 0;	
> }
> 
> //Espero te haya servido!!!
> 
> ------------------------------
> 
> Message: 2
> Date: Sun, 18 Nov 2012 15:19:19 +0100
> From: Danis Ramirez Joseph <danisrjoseph en gmail.com>
> To: cconclase en listas.conclase.net
> Subject: Re: [C con Clase] Do-while para verificar apertura de
> 	archivo...
> Message-ID: <E1Ta5iR-0003Pe-3k en ender.h3m.com>
> Content-Type: text/plain; charset=UTF-8
> 
> Hola Joaquín,
> 
> /* Aquí te dejo el código que escribiste con lo poco que le faltaba.
>    Los códigos añadidos llevan un comentario correspondiente que lo
> explica*/
> 
> #include <iostream>
> #include <string>
> #include <cstdlib>
> #include <cctype>
> #include <fstream>
> 
> using namespace std;
> 
> int main(int argc, char *argv[])
> 	
> {	
> 	string nombre_archivo;	
> 	fstream entrada;
> 	string linea; //Variable para poder leer el archivo linea por
> linea bool falloLectura; //Variable tipo bool para ampliar el alcance
> de << entrada.fail() > do		
> 	  {			
> 	    cout << "Filename to open: ";			
> 	    //Se solicita el nombre del archivo de comas que se
> abrira. getline(cin, nombre_archivo);
> 	    entrada.open(nombre_archivo.c_str());
> 	    cout <<"\nNombre de archivo ingresado: " <<
> nombre_archivo << endl << endl;
> 
> 	    if (entrada.fail())
> 		cout<<"\t!!El archivo no fue leido
> correctamente!!\n"<<endl; falloLectura = entrada.fail();
> 			
> 	    //El siguiente ciclo while lee el archivo linea por linea
> 	    while (getline(entrada, linea))
> 		cout<<linea<<endl;					
> 	  } while(falloLectura);
> 	
> 	cout << "\n adios..." << endl;
> 	
> 	system ("pause");
> 	return 0;	
> }
> 
> /* Espero que te haya servido */
> 
> ------------------------------
> 
> Message: 3
> Date: Sun, 18 Nov 2012 18:24:33 +0100
> From: José Luis Torre <joseluistorrehernandez en gmail.com>
> To: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
> Subject: Re: [C con Clase] (sin asunto)
> Message-ID:
> 	<CAEa-ZjYEu3vhwrDxUSv6_a0Ja4V3JJ8OJk8bkHO4zfqHjw=i-Q en mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> Hola:
> 
> Me he permitido modificar el programa para que, al convertirlo en una
> función,  sea más fácil de utilizar en otro programa.
> 
> #include <stdio.h>
> 
> int control_de_acceso (void)
> {
>    int claveRegistrada = 3456,
>        intentosPendientes = 3,
>        claveIngresada = 0;
> 
>     while(claveIngresada != claveRegistrada )
>     {
>        printf("Introduzca su clave para continuar: ");
>        scanf("%d", &claveIngresada);
> 
>        if(claveIngresada == claveRegistrada)
>        {
>            printf("Bienvenido\n");
>            getch();
>            return 0;
>        }
>        else
>        {
>            printf("\nClave incorrecta, %d intentos pendientes\n\n",
> --intentosPendientes);
>        }
> 
>        if (intentosPendientes==0)
>        {
>           printf("\n\n\t\tCuenta bloqueada (pulse una tecla para
> finalizar)\n");
>           getch();
>           exit(1);
>        }
>     }
>     return 0;
> }
> int main (void)
> {
>     control_de_acceso();
> 
>     getch();
>     return 0;
> }
> 
> Saludos
> José Luis
> 
> 
> El 18 de noviembre de 2012 14:12, Danis Ramirez Joseph <
> danisrjoseph en gmail.com> escribió:
> 
> > //Hola Johan,
> >
> > //Aquí te dejo el programa funcionando, basado en lo que tu hiciste
> > con algunas //modificaciones menores:
> >
> > # include <stdio.h>
> > # include <conio.h>
> >
> > int main ()
> > {
> >    int claveRegistrada = 3456,
> >        intentosRestantes = 3,
> >        claveIngresada = 0;
> >
> > while(claveIngresada != claveRegistrada && intentosRestantes != 0)
> >     {
> >        printf("Ingrese su clave para continuar: ");
> >        scanf("%d", &claveIngresada);
> >
> >        if(claveIngresada == claveRegistrada)
> >         {
> >            printf("\n\n\t\tBienvenido\n");
> >            getch();
> >            return 0;
> >         }
> >        else
> >            printf("\nClave incorrecta, %d intentos restantes\n\n",
> > --intentosRestantes);
> >     }
> >
> >         if (intentosRestantes==0)
> >         printf("\n\n\t\tCuenta bloqueada");
> >
> >         getch();
> >         return 0;
> > }
> >
> > //Espero te haya servido!!!
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> >
> 
> 
> 





Más información sobre la lista de distribución Cconclase