Foros del Web » Programación para mayores de 30 ;) » C/C++ »

cout como pasarlos a un txt ?

Estas en el tema de cout como pasarlos a un txt ? en el foro de C/C++ en Foros del Web. Hola me esta volviendo loco el como guardar los cout en este codigo alguien me podria decir que hago mal,el txt lo creo bien pero ...
  #1 (permalink)  
Antiguo 16/12/2012, 04:13
 
Fecha de Ingreso: agosto-2007
Ubicación: españa
Mensajes: 45
Antigüedad: 16 años, 8 meses
Puntos: 0
cout como pasarlos a un txt ?

Hola me esta volviendo loco el como guardar los cout en este codigo alguien me podria decir que hago mal,el txt lo creo bien pero no se gravan los datos

#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]<<" ";
archivo<<"Numero: "<<numeros[i] <<endl; /////no doy

if (ver_-1+k+l==total-1 ) {
cout<< "entro "<< endl;
archivo<<"Numero: "<<numeros[i] <<endl; /////no doy
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;
}
  #2 (permalink)  
Antiguo 16/12/2012, 12:58
Avatar de iblancasa  
Fecha de Ingreso: diciembre-2012
Ubicación: España
Mensajes: 143
Antigüedad: 11 años, 4 meses
Puntos: 16
Respuesta: cout como pasarlos a un txt ?

Yo lo he ejecutado y me ha dado como salida ésto:
Código:
Numero: 32
Numero: 32
Numero: 32
Numero: 32
Numero: 32
Numero: 32
Numero: 6
Numero: 6
Numero: 6
Numero: 6
Numero: 6
Numero: 4
Numero: 4
Numero: 4
Numero: 4
Numero: 41
Numero: 41
Numero: 41
Numero: 0
Numero: 0
Numero: 6
Numero: 6
Numero: 6
Numero: 6
Numero: 6
Numero: 4
Numero: 4
Numero: 4
Numero: 4
Numero: 41
Numero: 41
Numero: 41
Numero: 0
Numero: 0
¿Podrías coger tu código, ponerlo con sangría y algunos comentarios sobre qué es lo que estas tratando de hacer en cada paso?
Facilitaría mucho las cosas.

Un saludo.
  #3 (permalink)  
Antiguo 16/12/2012, 22:56
 
Fecha de Ingreso: agosto-2007
Ubicación: españa
Mensajes: 45
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: cout como pasarlos a un txt ?

La idea es que como salen en la consola me los imprima en el txt serian los " cout " lo que que quiero gravar, esta tarde explico el codigo

Gracias
  #4 (permalink)  
Antiguo 17/12/2012, 03:47
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: cout como pasarlos a un txt ?

Si estás en Windows o Linux existe el operando > que designa hacia dónde se dirige el stream de salida (o stdout) del proceso.

proceso.exe > C:\texto.txt

stderr (o la salida de errores) tiene el código 2 y se redirige igual

2>&1

que redirige el flujo sterr (2) hacia el flujo stdout (&1) por lo que queda finalmente

proceso.exe > C:\texto.txt 2>&1

Recuerda que los códigos son

0 para stdin o flujo de entrada
1 para stdout o flujo de salida
2 para stderr o flujo de salida de errores
3 - 9 que son reservados

Operadores &

La norma sobre los & indica que se colocan siempre o >& o <& indicando que se escribe:

A >& B -> de la salida de un proceso A a la entrada de B (por defecto para casi todo)
B <& A -> de la entrada de un proceso A a la salida de otro B (como un pipe inverso)


1<&2 // redirige el flujo stderr hacia el flujo stdout (de la entrada de stderr a al salida de stdout), que podría ser perfectamente de la salida de stderr a la entrada de stdout si se intercambian los operadores

2>&1

Si se usan varios operadores se puede razonar un poco más acertadamente lo que hacen los operadores

A > B 1<&2

Que mueve primero de la salida de A a la entrada de B mientras que mueve de la entrada de stderr a la salida de stdout. Por lo que stderr acaba en B.

Combinando salida y entrada

Para indicar al mismo tiempo y mediante los operadores > y < la salida y la entrada de un proceso se pueden usar:

proceso.exe < flujo de entrada del proceso > log de salida del proceso


y más tarde se combina con

proceso.exe < flujo de entrada del proceso > log de salida del proceso 2>&1

que además, como expliqué antes, mueve la salida de errores a la entrada de stdout y de la entrada de stdout, y de ahí de nuevo al log de salida (por lo que tanto stdout como stderr acaban en el mismo sitio, en el log). Y para completarlo más aún

proceso.exe < flujo de entrada de proceso > log de salida de proceso 2 > log de salida de errores 3 > log opcional para otros códigos

Evitar la sustitución

y para evitar que se borre la información del fichero y que la salida del proceso se escriba al final del fichero sin sobreescribir lo anterior se usa el operador

A >> B

que mueve la salida del proceso A hacia la entrada del fichero B

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 17/12/2012 a las 04:42
  #5 (permalink)  
Antiguo 17/12/2012, 13:24
 
Fecha de Ingreso: agosto-2007
Ubicación: españa
Mensajes: 45
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: cout como pasarlos a un txt ?

Bueno os dejo el codigo explicado y vuelvo a reformular la pregunta

el programa me muestra por consola combinaciones de numeros de esta forma si le pido que sean cinco este me muestra despues de introducir digamos 10 numeros...

1 2 3 4 5
6 7 8 9 10

y lo que no logro es que me imprima en el txt de esa forma




Cita:
#include <iostream>
#include <cstdlib>
using namespace std;

int main () {
int total,i,j,k=0,l=0,ver=0,ver_=0,p,p1=1,m=1;
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 = k;i < k+p1-ver+2; i++)
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;/*entro en los interiores*/
l++;/*incrementa el numero segundo*/
p--;/*/cuenta los interiores en cada incremento*/
cout<< "p "<< p<< endl;
if (p<0) {
m++; cout<< "m "<< m<< endl;
p=total-ver-m;*/<==disminuye el numero de interiores cada vez que se llega al ultimo*/
l=0;break;
}
else goto inicio;

}
ver_++;system("pause");
cout<< endl;
}while (ver_+k<=total);
}
system("pause");
return 0;
}
  #6 (permalink)  
Antiguo 20/12/2012, 14:49
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 4 meses
Puntos: 6
Respuesta: cout como pasarlos a un txt ?

Bueno, creo que el siguiente enlace te puede resultar útil:

Etiquetas: cout, funcion, int, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.