Foros-FIUBA Foros HostingPortal
 FAQ  •  Buscar  •  Wiki  •  Apuntes  •  Planet  •  Mapa  •  Eyeon  •  Chat
Preferencias  •  Grupos de Usuarios
Registrarse  •  Perfil  •  Entrá para ver tus mensajes privados  •  Login
Ver tema siguiente
Ver tema anterior

Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente
Autor Mensaje
df
Nivel 9


Edad: 32
Registrado: 15 May 2010
Mensajes: 2298

Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Dom Nov 14, 2010 12:05 pm  Asunto:  Duda C++ Responder citandoFin de la PáginaVolver arriba

Tengo el siguiente código:

Código:

for(i=0;i<m;i++)
{
cout<<"texto"<<i+1;
gets(string[i]);
}


y el programa directamente se saltea el cout, alguna idea de por qué/como arreglarlo/hacerlo de otra forma?

_________________
[tex] \nabla ^u \nabla_u \phi = g^{ij} \Big( \frac{\partial ^2 \phi}{\partial x^i \partial x^j} - \Gamma^{k}_{ij} \frac{\partial \phi}{\partial x^k} \Big)\\\\\frac{\partial \sigma^{ij}}{\partial x^i} + \sigma^{kj} \Gamma^i _{ki} + \sigma^{ik} \Gamma^j _{ki} = 0[/tex]

Tauro Género:Masculino Cabra OcultoGalería Personal de dfVer perfil de usuarioEnviar mensaje privado
Ttincho
Nivel 6



Registrado: 06 Sep 2009
Mensajes: 226

Carrera: Química
blank.gif
MensajePublicado: Dom Nov 14, 2010 12:07 pm  Asunto:  Re: Duda C++ Responder citandoFin de la PáginaVolver arriba

df escribió:
Tengo el siguiente código:

Código:

for(i=0;i<m;i++)
{
cout<<"texto"<<i+1;
gets(string[i]);
}


y el programa directamente se saltea el cout, alguna idea de por qué/como arreglarlo/hacerlo de otra forma?


proba esto
agrega el archivo
#include <stdio>
y fijate si anda con:

Código:

for(i=0;i<m;i++)
{
cout<<"texto"<<i+1;
fflush(stdin);
gets(string[i]);
}


   OfflineGalería Personal de TtinchoVer perfil de usuarioEnviar mensaje privado
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Dom Nov 14, 2010 12:12 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Se saltea el cout? Significa que no imprime nada? Probá flushear el buffer antes de usar gets(). Igual es generalmente mala idea combinar la biblioteca estándar de IO de C y C++.

Código:

for(i=0;i<m;i++) {
    cout << "texto" << i+1 << flush;
    gets(string[i]);
}


Fijate ver si podés reemplazar gets() con cin, por ejemplo http://www.ideone.com/d5Y4T

EDIT: Qué raro, no se puede poner flush en el tag de code O_o




Última edición por koreano el Dom Nov 14, 2010 12:20 pm, editado 2 veces
   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
x_wing_alliance
Nivel 8


Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO

switzerland.gif
MensajePublicado: Dom Nov 14, 2010 12:17 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Tal vez no entra nunca al for...

_________________
"Ya había oido que si los CD's de Microsoft se hacian girar al revés se escuchaban frases demoníacas, aunque no se que es peor, porque si giran al derecho, se instala Windows."

Virgo Género:Masculino Caballo OfflineGalería Personal de x_wing_allianceVer perfil de usuarioEnviar mensaje privado
df
Nivel 9


Edad: 32
Registrado: 15 May 2010
Mensajes: 2298

Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Dom Nov 14, 2010 12:18 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Ttincho escribió:
df escribió:
Tengo el siguiente código:

Código:

for(i=0;i<m;i++)
{
cout<<"texto"<<i+1;
gets(string[i]);
}


y el programa directamente se saltea el cout, alguna idea de por qué/como arreglarlo/hacerlo de otra forma?


proba esto
agrega el archivo
#include <stdio>
y fijate si anda con:

Código:

for(i=0;i<m;i++)
{
cout<<"texto"<<i+1;
fflush(stdin);
gets(string[i]);
}

Sigue con el mismo problema.
koreano escribió:
Se saltea el cout? Significa que no imprime nada? Probá flushear el buffer antes de usar gets(). Igual es generalmente mala idea combinar la biblioteca estándar de IO de C y C++.

Código:

for(i=0;i<m;i++) {
    cout << "texto" << i+1 << flush;
    gets(string[i]);
}


Fijate ver si podés reemplazar gets() con cin.

Claro, no imprime nada. Con un cin puedo tomar cadenas de caracteres que tengan espacios " "? Por eso usaba gets.

_________________
[tex] \nabla ^u \nabla_u \phi = g^{ij} \Big( \frac{\partial ^2 \phi}{\partial x^i \partial x^j} - \Gamma^{k}_{ij} \frac{\partial \phi}{\partial x^k} \Big)\\\\\frac{\partial \sigma^{ij}}{\partial x^i} + \sigma^{kj} \Gamma^i _{ki} + \sigma^{ik} \Gamma^j _{ki} = 0[/tex]

Tauro Género:Masculino Cabra OcultoGalería Personal de dfVer perfil de usuarioEnviar mensaje privado
MirianQ
Nivel 8


Edad: 35
Registrado: 29 Feb 2008
Mensajes: 675
Ubicación: Siempre desvirtuando... siempre.
Carrera: Electrónica y Informática
CARRERA.informatica.3.jpg
MensajePublicado: Dom Nov 14, 2010 12:19 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Cuanto vale m???

Para mi ahi esta el problema. Y para cout es #include <iostream>

Proba tambien escribir std::cout<<"sarasa";

_________________
Image

Libra Género:Femenino Dragón OcultoGalería Personal de MirianQVer perfil de usuarioEnviar mensaje privado
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Dom Nov 14, 2010 12:22 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

df escribió:

Claro, no imprime nada. Con un cin puedo tomar cadenas de caracteres que tengan espacios " "? Por eso usaba gets.


Sí, usando std::getline(). Así: http://www.ideone.com/dqlfe


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
x_wing_alliance
Nivel 8


Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO

switzerland.gif
MensajePublicado: Dom Nov 14, 2010 12:24 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Debugea y fijate si pasa por la linea del cout, sino es dar vueltas al dope con las teorías (tal vez no inicializaste m o m es igual a 0!).

Por cierto, yo consideraría usar un fstream o un ifstream para leer el si vas a leer un archivo.

http://www.cplusplus.com/reference/iostream/fstream/
http://www.cplusplus.com/reference/iostream/ifstream/

_________________
"Ya había oido que si los CD's de Microsoft se hacian girar al revés se escuchaban frases demoníacas, aunque no se que es peor, porque si giran al derecho, se instala Windows."

Virgo Género:Masculino Caballo OfflineGalería Personal de x_wing_allianceVer perfil de usuarioEnviar mensaje privado
df
Nivel 9


Edad: 32
Registrado: 15 May 2010
Mensajes: 2298

Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Dom Nov 14, 2010 12:34 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Gracias a todos por las respuestas, funca bien ahora.

_________________
[tex] \nabla ^u \nabla_u \phi = g^{ij} \Big( \frac{\partial ^2 \phi}{\partial x^i \partial x^j} - \Gamma^{k}_{ij} \frac{\partial \phi}{\partial x^k} \Big)\\\\\frac{\partial \sigma^{ij}}{\partial x^i} + \sigma^{kj} \Gamma^i _{ki} + \sigma^{ik} \Gamma^j _{ki} = 0[/tex]

Tauro Género:Masculino Cabra OcultoGalería Personal de dfVer perfil de usuarioEnviar mensaje privado
Dx9
Moderador


Edad: 37
Registrado: 03 Ene 2007
Mensajes: 1552

Carrera: Informática
argentina.gif
MensajePublicado: Dom Nov 14, 2010 12:43 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

df escribió:
Gracias a todos por las respuestas, funca bien ahora.


Explica que hiciste para resolver el problema Smile

_________________
Biblioteca Apuntes

Aries Género:Masculino Gato OcultoGalería Personal de Dx9Ver perfil de usuarioEnviar mensaje privadoVisitar sitio web del usuario
df
Nivel 9


Edad: 32
Registrado: 15 May 2010
Mensajes: 2298

Carrera: Civil
CARRERA.civil.3.jpg
MensajePublicado: Dom Nov 14, 2010 12:50 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Empecé a probar un poco de lo que dijeron todos, pensé que funcionaba pero resulta que no.
cin/cout, funciona pero no me sirve, cout/gets, no funciona (se saltea el cout), printf/gets funciona pero no puedo poner una variable dentro del printf, o si? algo del estilo de cout<<i;. std::cout/gets se saltea el gets.

edit: ok ahora si funciona, con printf("%d",i);

_________________
[tex] \nabla ^u \nabla_u \phi = g^{ij} \Big( \frac{\partial ^2 \phi}{\partial x^i \partial x^j} - \Gamma^{k}_{ij} \frac{\partial \phi}{\partial x^k} \Big)\\\\\frac{\partial \sigma^{ij}}{\partial x^i} + \sigma^{kj} \Gamma^i _{ki} + \sigma^{ik} \Gamma^j _{ki} = 0[/tex]

Tauro Género:Masculino Cabra OcultoGalería Personal de dfVer perfil de usuarioEnviar mensaje privado
koreano
Nivel 9



Registrado: 15 Jul 2010
Mensajes: 1796

Carrera: No especificada
blank.gif
MensajePublicado: Dom Nov 14, 2010 1:11 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Sí, printf puede imprimir variables también, pero estoy seguro de que hay una manera mejor y mas segura de hacer lo que querés en C++ en vez de "modo C".

Para usar printf tenes que pasar como primer parametro la cadena de formato (que puede contener texto) y despues la cantidad de parametros necesaria según corresponda. También tenes que fijarte que el tipo de parametro concuerde o te imprime cualquier verdura.

Ejemplo:

Código:
char* nombre = "Juan";
int edad = 18;
printf("Hola, %s, tenés %d años", nombre, edad);


Fijate que el orden importa. Acá tenés una página que te dice que tipo de formato podés usar para cada tipo de dato que quieras imprimir: http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Igual, como mencioné al principio creo que es mejor si nos decís directamente que querés hacer. Este ejemplo no te sirve? http://www.ideone.com/dqlfe


   OcultoGalería Personal de koreanoVer perfil de usuarioEnviar mensaje privado
x_wing_alliance
Nivel 8


Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO

switzerland.gif
MensajePublicado: Dom Nov 14, 2010 1:46 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

koreano escribió:

Igual, como mencioné al principio creo que es mejor si nos decís directamente que querés hacer.


+1

_________________
"Ya había oido que si los CD's de Microsoft se hacian girar al revés se escuchaban frases demoníacas, aunque no se que es peor, porque si giran al derecho, se instala Windows."

Virgo Género:Masculino Caballo OfflineGalería Personal de x_wing_allianceVer perfil de usuarioEnviar mensaje privado
Kartlan
Nivel 5


Edad: 43
Registrado: 09 Ago 2005
Mensajes: 176
Ubicación: Once
Carrera: Informática
argentina.gif
MensajePublicado: Dom Nov 14, 2010 2:02 pm  Asunto:  (Sin Asunto) Responder citandoFin de la PáginaVolver arriba

Primero, no se deberian mezclar a lo pabote los stream (cout, cin, cerr) y printf/gets, ahora no me acuerdo bien-bien cual es el problema pero por como funcionan los buffer y otras yerbas... Cuando tuve que luchar con taller me acuerdo de que aprendi el porque, ahora me quedo el "en caso de hacer esto... fijate bien".

Recuerdo tambien que hay una directiva para decirle a los stream que sean compatibles con printf/gets

Además, Sí! printf significa "imprimir con formato" busca la documentación de la función en internet por que yo ahora tambien lo tengo que hacer y no quiero escribir al pedo.


Aries Género:Masculino Gallo OfflineGalería Personal de KartlanVer perfil de usuarioEnviar mensaje privadoEnviar emailYahoo MessengerMSN Messenger
Mostrar mensajes de anteriores:      
Responder al tema Ver tema anteriorEnviar por mail a un amigo.Mostrar una Lista de los Usuarios que vieron este TemaGuardar este Tema como un archivoPrintable versionEntrá para ver tus mensajes privadosVer tema siguiente

Ver tema siguiente
Ver tema anterior
Podés publicar nuevos temas en este foro
No podés responder a temas en este foro
No podés editar tus mensajes en este foro
No podés borrar tus mensajes en este foro
No podés votar en encuestas en este foro
No Podéspostear archivos en este foro
No Podés bajar archivos de este foro


Todas las horas son ART, ARST (GMT - 3, GMT - 2 Horas)
Protected by CBACK CrackerTracker
365 Attacks blocked.

Powered by phpBB2 Plus, phpBB Styles and Kostenloses Forum based on phpBB © 2001/6 phpBB Group :: FI Theme :: Mods y Créditos

Foros-FIUBA está hosteado en Neolo.com Cloud Hosting

[ Tiempo: 0.6204s ][ Pedidos: 20 (0.5012s) ]