Autor |
Mensaje |
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
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?
|
|
|
|
_________________
|
|
|
|
|
Ttincho
Nivel 6
Registrado: 06 Sep 2009
Mensajes: 226
Carrera: Química
|
|
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]);
}
|
|
|
|
|
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
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
|
|
|
|
|
x_wing_alliance
Nivel 8
Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO
|
|
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."
|
|
|
|
|
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
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.
|
|
|
|
_________________
|
|
|
|
|
MirianQ
Nivel 8
Edad: 35
Registrado: 29 Feb 2008
Mensajes: 675
Ubicación: Siempre desvirtuando... siempre.
Carrera: Electrónica y Informática
|
|
Cuanto vale m???
Para mi ahi esta el problema. Y para cout es #include <iostream>
Proba tambien escribir std::cout<<"sarasa";
|
|
|
|
_________________
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
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
|
|
|
|
|
|
|
|
|
x_wing_alliance
Nivel 8
Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO
|
|
_________________ "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."
|
|
|
|
|
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
Gracias a todos por las respuestas, funca bien ahora.
|
|
|
|
_________________
|
|
|
|
|
Dx9
Moderador
Edad: 37
Registrado: 03 Ene 2007
Mensajes: 1552
Carrera: Informática
|
|
df escribió:
|
Gracias a todos por las respuestas, funca bien ahora.
|
Explica que hiciste para resolver el problema
|
|
|
|
_________________ Biblioteca Apuntes
|
|
|
|
|
df
Nivel 9
Edad: 32
Registrado: 15 May 2010
Mensajes: 2298
Carrera: Civil
|
|
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);
|
|
|
|
_________________
|
|
|
|
|
koreano
Nivel 9
Registrado: 15 Jul 2010
Mensajes: 1796
Carrera: No especificada
|
|
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
|
|
|
|
|
|
|
|
|
x_wing_alliance
Nivel 8
Edad: 117
Registrado: 21 Nov 2006
Mensajes: 514
Ubicación: IO
|
|
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."
|
|
|
|
|
Kartlan
Nivel 5
Edad: 43
Registrado: 09 Ago 2005
Mensajes: 176
Ubicación: Once
Carrera: Informática
|
|
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.
|
|
|
|
|
|
|
|
|
|