Autor
|
Tema: lograr guardar resultados en un txt bucles o for ? (Leído 5,864 veces)
|
luis456
Desconectado
Mensajes: 551
|
Tengo este codigo que me combina los numeros que yo pida (gracias a leo ) que me ayudo a hacerlo, bien estoy tratando de que estos resultados me los guarde en un txt pero estoy trabado logro hacer el archivo pero solo me guarda lo que esta en ese momento ? pongo el codigo a ver que hago o que no hago ///programa de combinaciones numericas #include <iostream> #include <cstdlib> #include <stdlib.h>//Libreria para usar la funcion al final del codigo system(); #include <fstream> using namespace std; int main () { int total,i,j,k=0,l=0,ver=0,ver_=0,p; cout<<"Cuantos numeros desea ingresar?: "; cin>>total; int numeros[total],n_par[total],n_impar[total]; cout<<"Cuantos numeros desea ver cada vez?: "; cin>>ver; int num[ver]; ver_=ver; for( i = 0; i < total; i++){ cout<<"Ingrese el "<<i+1<<" numero: "; cin >> numeros[i]; for( j = i-1; j >=0 ; j--){ if(numeros[i] == numeros[j]){ cout<<"El numero esta repetido ingrese otro\n"; i--; break; } } } p=total-ver; for( k = 0; k <=total-ver; k++){ l=0; inicio: ver_=ver; do{ cout<< numeros[k]<<" "; for( i = 1+k+l; i < ver-1+k+l; i++){ cout<< numeros[i]<<" "; } cout<< numeros[ver_-1+k+l]<<" "; if (ver_-1+k+l==total-1 ) { cout<< "entro "<< endl;; l++;p--; if (p<0) { l=0;break; } else goto inicio; } ver_++;system("pause"); cout<< endl; }while (ver_+k<=total); } //aca estoy tratando de guadar los resultados string fichero ("lista.txt");//---ok ofstream f_lista (fichero.c_str()); //--ok if (!f_lista) { //---ok cout << "El fichero " << fichero << " no existe."; //--ok exit (0);//----ok } ///ya aca no se como hacerle para ir guardando cada uno de los resultados como me los muestra la consola f_lista <<ver_<< endl; //f_lista <<numeros[i] << endl; ///// system("pause"); return 0; }
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
naderST
|
Así como lo vas imprimiendo en consola, lo imprimes en el archivo, es decir, dentro del mismo for ya que la consola la puedes ver como un archivo.
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Osea que seria aca do{ cout<< numeros[k]<<" "; for( i = 1+k+l; i < ver-1+k+l; i++){ cout<< numeros[i]<<" "; aqui iria no ? <------------------------------------------
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
luis456
Desconectado
Mensajes: 551
|
No lo logro he cambiado por todo el for y nada que hago de mal lo pongo a ver ? #include <iostream> #include <cstdlib> #include <stdlib.h>//Libreria para usar la funcion al final del codigo system(); #include <fstream> using namespace std;
int main () { int total,i,j,k=0,l=0,ver=0,ver_=0,p; cout<<"Cuantos numeros desea ingresar?: "; cin>>total; int numeros[total],n_par[total],n_impar[total]; cout<<"Cuantos numeros desea ver cada vez?: "; cin>>ver; int num[ver]; ver_=ver; ofstream archivo("numeros.txt");//////////////////////////creamos el archivo for( i = 0; i < total; i++){ cout<<"Ingrese el "<<i+1<<" numero: "; cin >> numeros[i]; for( j = i-1; j >=0 ; j--){ if(numeros[i] == numeros[j]){ cout<<"El numero esta repetido ingrese otro\n"; i--; break; } } } p=total-ver; for( k = 0; k <=total-ver; k++){ l=0; inicio: ver_=ver; do{ cout<< numeros[k]<<" "; for( i = 1+k+l; i < ver-1+k+l; i++){ cout<< numeros[i]<<" "; archivo<<"Numero: "<<numeros[i] <<endl; /////no doy } cout<< numeros[ver_-1+k+l]<<" "; if (ver_-1+k+l==total-1 ) { cout<< "entro "<< endl; l++;p--; if (p<0) { l=0;break; } else goto inicio; } ver_++;system("pause"); cout<< endl; }while (ver_+k<=total); } archivo.close();//Cerramos el archivo system("pause"); return 0; }
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
naderST
|
Explícame un poco que quieres hacer o que se supone que debería hacer tu código porque no lo estoy siguiendo del todo
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Explícame un poco que quieres hacer o que se supone que debería hacer tu código porque no lo estoy siguiendo del todo
Bien si ejecutas el código veras que hace combinaciones numéricas según le pidas hace combinaciones de los numeros que introduzcas y lo muestra en resultados que le pidas ejemplo : introduces 10 numeros desde 01 hasta el 10 este te los combina de cuatro en cuatro o segun le pidas como lo muestre ejemplo 1 2 3 4 5 6 7 8 10 10 numeros que introduces y le pides que te los de en resultados de cuatro 1 2 3 4 1 2 3 5 1 2 3 6 1 2 3 7 1 2 3 8 1 2 3 9 despues cambia a: 1 2 3 10 1 3 4 5 1 3 4 6 1 3 4 7 1 3 4 8 1 3 4 9 y asi combina hasta que se acaba el ciclo saludos luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
flony
Desconectado
Mensajes: 584
|
lo meti al visual c++ lo compile y me fije los errores, no soy muy bueno apenas aprendiz pero veo que los errores indican que a las matrices le tenes que meter como dato una constante error C2057: se esperaba una expresión constante en la parte int numeros[total],n_par[total],n_impar[total] una solucion tener matrices dinamicas, aca pongo una pagina porque no llegue tan lejos todavia http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/de todas formas la lógica del problema indica que deba ser desde 01 a 10?...no seria desde 00 a 09?
|
|
« Última modificación: 15 Diciembre 2012, 21:57 pm por flony »
|
En línea
|
si un problema no tiene solucion entonces no es un problema...es algo inevitable
|
|
|
naderST
|
lo meti al visual c++ lo compile y me fije los errores, no soy muy bueno apenas aprendiz pero veo que los errores indican que a las matrices le tenes que meter como dato una constante error C2057: se esperaba una expresión constante en la parte int numeros[total],n_par[total],n_impar[total] una solucion tener matrices dinamicas, aca pongo una pagina porque no llegue tan lejos todavia http://www.alanchavez.com/matrices-dinamicas-en-c-desmitificadas/de todas formas la lógica del problema indica que deba ser desde 01 a 10?...no seria desde 00 a 09? El código compila, en dado casos los errores son lógicos. Ese error que te arroja el compilador de vc++ sucede cuando tratas de declarar el arreglo global de un tamaño variable, si la declaración del arreglo se encuentra dentro de una función, como en este caso, debería compilar. Error C2057http://msdn.microsoft.com/en-us/library/eff825eh(v=vs.71).aspx
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
lo que quiero guardar son " los cout los quiero !imprimir en un fichero de texto".
luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
lo que quiero guardar son " los cout los quiero !imprimir en un fichero de texto".
luis
#include <iostream> #include <cstdlib> #include <fstream> using namespace std; int main () { int total,i,j,k=0,l=0,ver=0,ver_=0,p; char cadena[128]; ofstream fs("numeros.txt"); cout<<"Cuantos numeros desea ingresar?: "; cin>>total; int numeros[total],n_par[total],n_impar[total]; cout<<"Cuantos numeros desea ver cada vez?: "; cin>>ver; int num[ver]; ver_=ver; for( i = 0; i < total; i++){ cout<<"Ingrese el "<<i+1<<" numero: "; cin >> numeros[i]; for( j = i-1; j >=0 ; j--){ if(numeros[i] == numeros[j]){ cout<<"El numero esta repetido ingrese otro\n"; i--; break; } } } p=total-ver; for( k = 0; k <=total-ver; k++){ l=0; inicio: ver_=ver; do{ fs<< numeros[k]<<" "; cout<< numeros[k]<<" "; for( i = 1+k+l; i < ver-1+k+l; i++){ fs<< numeros[i]<<" "; cout<< numeros[i]<<" "; } fs<< numeros[ver_-1+k+l]<<" "; cout<< numeros[ver_-1+k+l]<<" "; if (ver_-1+k+l==total-1 ) { fs<< "entro "<< endl; cout<< "entro "<< endl; l++;p--; if (p<0) { l=0;break; } else goto inicio; } ver_++; fs<< endl; cout<< endl; }while (ver_+k<=total); } fs.close(); ifstream fe("numeros.txt"); fe.getline(cadena, 128); cout << cadena << endl; system("pause"); return 0; }
Saluditos!.P.D: Recuerda que sólo va para combinaciones de n elemnetos tomados de tres en tres los otros casos están pendientes de implementar.
|
|
« Última modificación: 16 Diciembre 2012, 16:56 pm por leosansan »
|
En línea
|
|
|
|
|
|