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

Problema g++ y cout

Estas en el tema de Problema g++ y cout en el foro de C/C++ en Foros del Web. Hola, tengo instalado cygwin con el compilador g++ 3.4.4, cuando trato de compilar un programa que incluye algo como. cout<<var<<" "; No me imprime nada ...
  #1 (permalink)  
Antiguo 04/05/2010, 07:50
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Problema g++ y cout

Hola,

tengo instalado cygwin con el compilador g++ 3.4.4, cuando trato de compilar un programa que incluye algo como.

cout<<var<<" ";

No me imprime nada en pantalla, es un bug de gcc??

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 04/05/2010, 08:27
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema g++ y cout

El problema es que el compilador no compila, o se genera un ejecutable, y es este el que no genera salida? La redaccion de tu pregunta da a entender que es la compilacion la que no genera mensaje alguno, es asi?
  #3 (permalink)  
Antiguo 04/05/2010, 08:48
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Problema g++ y cout

Me parece que la redaccion no fue muy buena. El programa compila sin errores, pero cuando lo ejecuto no muestra nada en pantalla, como ignorando el cout.
  #4 (permalink)  
Antiguo 04/05/2010, 09:02
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema g++ y cout

Ocurre eso incluso con un programa que lo unico que tiene es un cout << "hola"; ?
Que pasa si rediriges la salida a un archivo? ( ejecutable > archivo )
hay salida en el archivo? ( cat archivo )
Si el programa es mas complejo que un cout << "hola", puedes copiar aqui el codigo, para ver si hay otra razon de la no escritura?
  #5 (permalink)  
Antiguo 04/05/2010, 09:28
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Problema g++ y cout

Aca el codigo. Inicialmente estaba tratando de mandar la informacion a un archivo, pero como no funcionaba bien, trate de sacarla en pantalla con un cout.
Si pongo cout<<var<<" "<<endl; aparece en pantalla sin problema.
Si redirijo la salida a un archivo, el archivo queda en blanco lo mismo.


Código C++:
Ver original
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. int main(void)
  7. {
  8.   double Aod=0.;
  9.   double Sza=11.;
  10.   double etot380;
  11.   double etot340;
  12.   char FileName[50];
  13.   char temp[50];
  14.   ofstream out380("salida380.txt");
  15.   ofstream out340("salida340.txt");
  16.   ifstream infiles("files.txt");
  17.  
  18.     for(int iaod=0;iaod<100;iaod++){
  19.         for(int isza=0;isza<120;isza){
  20.             Aod=0.+(iaod+1)*0.01;
  21.             Sza=11.+(isza+1)*0.5;
  22.             //sprintf(FileName,"output/fx%f_%f",Aod,Sza);
  23.             //strcat(FileName,".txt");
  24.             infiles.getline(temp,sizeof(char)*50); 
  25.             strcpy(FileName,"output/");
  26.             strcat(FileName,temp);             
  27.             //cout<<FileName<<endl;
  28.             ifstream in(FileName);
  29.               double lambda[120], edir[120],edn[120],eup,edira,edna,eupa,etot[120];
  30.               for(int i=0;i<120;i++){
  31.                  in>>lambda[i]>>edir[i]>>edn[i]>>eup>>edira>>edna>>eupa;
  32.                  etot[i]=edir[i]+edn[i];
  33.               }
  34.               etot380=0.;
  35.               for(int i=80;i<100;i++){
  36.                  etot380=etot380+etot[i]*((i-100)/20+1)*0.5;
  37.               }
  38.               for(int i=100;i<121;i++){
  39.                  etot380=etot380+etot[i]*(-(i-100)/20+1)*0.5;
  40.               }
  41.               cout<<etot380<<" ";
  42.               out380<<etot380<<" ";
  43.              
  44.               etot340=0.;
  45.               for(int i=0;i<20;i++){
  46.                  etot340=etot340+etot[i]*(i/20+1)*0.5;
  47.               }
  48.               for(int i=20;i<41;i++){
  49.                  etot340=etot340+etot[i]*(-(i-20)/20+1)*0.5;
  50.               }
  51.               out340<<etot340<<" ";
  52.  
  53.  
  54.            
  55.         }
  56.         out380<<endl;
  57.         out340<<endl;
  58.     }
  59.  
  60. return(0);
  61. }
  #6 (permalink)  
Antiguo 04/05/2010, 09:38
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema g++ y cout

Para entender mas, cuando dices
Cita:
Iniciado por haidion Ver Mensaje
Si pongo cout<<var<<" "<<endl; aparece en pantalla sin problema.
Quieres decir que el cout SI escribe y ya no tienes ese problema, o quieres decir que el espacio en blanco agregado al final hace que algo aparezca en pantalla, pero si no agregas ese espacio no aparece nada en pantalla?

Dicho de otra forma, cual es tu problema?
  #7 (permalink)  
Antiguo 04/05/2010, 09:51
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Problema g++ y cout

Hola,

Si pongo el fin de linea, imprime en pantalla, pero si no lo pongo no imprime en pantalla.
cout<<var<<endl; //imprime el contenido de var en pantalla
cout<<var<<" "; //No imprime nada en pantalla

El problema se inicio por que estaba tratando de escribir en un archivo entre dos ciclos for. Por ejemplo

Código C++:
Ver original
  1. ofstream out("file.txt")
  2.    for(int i=0;i<N;i++){
  3.          for(j=0;j<M;j++){
  4.               out<<var<<" ";
  5.          }
  6.          out<<endl;
  7.    }

Y no me ponia los saltos de linea en el archivo de salida, entonces en el lugar de out<<var<<" ";
Puse un cout, pero no me imprime en pantalla nisiquiera.
  #8 (permalink)  
Antiguo 04/05/2010, 10:37
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Problema g++ y cout

No se si tenga que ver pero deberias, antes, arreglar un par de cosas raras de tu programa.
Mira la linea 19. Esta bien que no incrementes isza?
Ahora la linea 29 contrastada con la linea 38. El indice i eventualmente llegara al valor 120, que no es un indice valido para el arreglo etot.
Arregla esas 2 cosas, prueba y despues ve si tus problemas persisten.
  #9 (permalink)  
Antiguo 04/05/2010, 11:14
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Problema g++ y cout

Muchas gracias, parece que el problema andaba por ahi.

Etiquetas: cout
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 00:18.