elrincondelc.com
Inicio :: Foros
Usuario: Clave: Regístrate
Salir


Repetir cadena en txt

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Toletum



Registrado: 30 Mar 2012
Mensajes: 4

MensajePublicado: 30/03/2012 2:39 pm Responder citando
Título: Repetir cadena en txt

Muy buenas:

En clase me piden un programa que solicite una cadena, y después esa cadena se imprima 10 veces en un archivo txt. Siento plantear esto así, estoy haciendo un ciclo Superior y la asignatura de programación se me ha atragantado, ojala aquí obréis el milagro para que pueda sacarla adelante. Muchas gracias.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
durasno



Registrado: 22 Ene 2012
Mensajes: 117

MensajePublicado: 30/03/2012 3:17 pm Responder citando
Título: Re: Repetir cadena en txt

Toletum escribió:
Muy buenas:

En clase me piden un programa que solicite una cadena, y después esa cadena se imprima 10 veces en un archivo txt. Siento plantear esto así, estoy haciendo un ciclo Superior y la asignatura de programación se me ha atragantado, ojala aquí obréis el milagro para que pueda sacarla adelante. Muchas gracias.
Subi el codigo q tengas asi te podemos ayudar, otra cosa aclara si es C o C++

Saludos
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Toletum



Registrado: 30 Mar 2012
Mensajes: 4

MensajePublicado: 30/03/2012 4:05 pm Responder citando
Título:

Algunas aclaraciones:

- C++
-Visual basic
-Windows 7
Volver arriba
Ver perfil del usuario Enviar mensaje privado
durasno



Registrado: 22 Ene 2012
Mensajes: 117

MensajePublicado: 31/03/2012 10:48 am Responder citando
Título:

Y el codigo para poder ayudarte??
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Toletum



Registrado: 30 Mar 2012
Mensajes: 4

MensajePublicado: 31/03/2012 12:58 pm Responder citando
Título:

mi intención es crear un archivo llamado origen.txt y copiar esa cadena en él, con esto me crea el archivo pero no pega la cadena en dicho archivo.


Código:
*********************************************
            Preparacion de examen
Ver:1.0                  31/03/2012
***********************************************/
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;

const int MAX_NOM=80;
struct reg
{
   char nombre[MAX_NOM];
   char tel[10];

};

int main(int argc, char *argv[])
{   
   int op,i=0,rb;
   struct reg registro1;
   FILE *pf;
   FILE *pf1;
   FILE *pf2;
   int n_registros;
   char car;
   char cad[90];
   
   while(1)
   {
      system("cls");
      cout<<"**********************"<<endl
         <<"\t\tMENU"<<endl
         <<"**********************"<<endl
         <<"1. Crear Archivo"<<endl
         <<"2. Repetir Cadena"<<endl
         <<"3. Hora"<<endl
         <<"4. Salir"<<endl;
      cout<<"Opcion:";
      cin>>op;
      switch(op)
      {
         
         case 1:




            pf1=fopen("origen.txt","w");
            strcpy(cad,"Ivan Hernandez Perez\n\n");
   
            fclose(pf1);
            
            break;
         
         case 2:

         
            break;
         case 3:
            
            break;
            case 4:

            return(0);
            break;
         default:
            return(0);
            break;


      }

   }
}
Volver arriba
Ver perfil del usuario Enviar mensaje privado
durasno



Registrado: 22 Ene 2012
Mensajes: 117

MensajePublicado: 02/04/2012 11:05 am Responder citando
Título:

Hola! No tengo idea acerca de C++ (sory no lo habia leido en tu segunda respues en que estabas programando) pero en tu codigo en ningun momento estas guardando en el archivo. En C tenes varias opciones para guardar, entre ellas esta fprintf; agregando en tu codigo seria:

......................
case 1:


strcpy(cad,"Ivan Hernandez Perez\n\n");
fprintf(pf1,"%s",cad);
fclose(pf1);

break;
........................
Si vas a probarlo asi saca el fopen del case 1 ponelo antes del switch

Saludos
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Toletum



Registrado: 30 Mar 2012
Mensajes: 4

MensajePublicado: 02/04/2012 11:41 am Responder citando
Título:

Si durasno ya lo averigüé investigando, ahora tengo que hacer el case 2:, donde debe crear otra txt con la cadena repetida n veces, lo e intentado con un for, pero no entiendo me crea la cadena una sola vez, pienso que repite la cadena esas n veces pero las pega en el mismo lugar, no llego a comprender como hacerlo. esto es lo que tengo en el case 2:

Código:
case 2:

         

         //pf=fopen("uno2.txt","w");
      
         for(int j=0;j<10;j++)
         {

            
            //printf("Ivan Hernandez Perez\n\n");
            strcpy(baf,"Ivan Hernandez Perez\n\n");

               while(!ferror(pf)&&baf[i])
               
                  fputc(baf[i++],pf);
         
               //fclose(pf);
         }
         fclose(pf);
break;
Volver arriba
Ver perfil del usuario Enviar mensaje privado
eduar2083



Registrado: 10 Ago 2008
Mensajes: 219
Ubicación: Lima - Perú

MensajePublicado: 02/04/2012 11:50 am Responder citando
Título:

Hola. Estás mezclando C y C++. Para almacenar 10 veces en un archivo txt una cadena ingresada por teclado, podría hacerse de la siguiente manera en C.
Código:
#include <stdio.h>

#define TAM 80
#define REPEAT 10

int main(void)
{
   char cadena[TAM];
   FILE *file;
   int i;

   printf("Deme cadena: ");
   fflush(stdout);
   gets(cadena);

   if ((file = fopen("destino.txt", "w")) == NULL)
      return -1;

   for (i = 0; i < REPEAT; ++i)
      fprintf(file, "%s\n", cadena);

   fclose(file);

   return 0;
}

Cabe mencionar que se debe tenerse cuidado de no desbordar la variable cadena, para ello puedes sustituir gets por fgets que permite especificar la cantidad máxima de caracteres a almacenar.

Un saludo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1 Todas las horas están en GMT - 8 Horas

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com, 1999-2007

Un proyecto de UrlanHeat.com