| Ver tema anterior :: Ver siguiente tema |
| Autor |
Mensaje |
Toletum
Registrado: 30 Mar 2012 Mensajes: 4
|
Publicado: 30/03/2012 2:39 pm |
|
| 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 |
|
 |
durasno
Registrado: 22 Ene 2012 Mensajes: 117
|
Publicado: 30/03/2012 3:17 pm |
|
| 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 |
|
 |
Toletum
Registrado: 30 Mar 2012 Mensajes: 4
|
Publicado: 30/03/2012 4:05 pm |
|
| Título: |
|
Algunas aclaraciones:
- C++
-Visual basic
-Windows 7 |
|
| Volver arriba |
|
 |
|
durasno
Registrado: 22 Ene 2012 Mensajes: 117
|
Publicado: 31/03/2012 10:48 am |
|
| Título: |
|
| Y el codigo para poder ayudarte?? |
|
| Volver arriba |
|
 |
Toletum
Registrado: 30 Mar 2012 Mensajes: 4
|
Publicado: 31/03/2012 12:58 pm |
|
| 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 |
|
 |
durasno
Registrado: 22 Ene 2012 Mensajes: 117
|
Publicado: 02/04/2012 11:05 am |
|
| 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 |
|
 |
|
|
Toletum
Registrado: 30 Mar 2012 Mensajes: 4
|
Publicado: 02/04/2012 11:41 am |
|
| 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 |
|
 |
eduar2083
Registrado: 10 Ago 2008 Mensajes: 218 Ubicación: Lima - Perú
|
Publicado: 02/04/2012 11:50 am |
|
| 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 |
|
 |
|
|
|