¿Por qué mi bucle while no está detectando las entradas de cin?
#include
#include
using namespace std;
int main() {
vector inputs;
int x;
cout << "Ingrese valores:";
cin >> x;
while(cin>>x)
inputs.insert(inputs.end(),{x});
for(int i=0; i
He intentado muchos métodos para tratar de hacer que mi bucle while detecte las entradas, pero cuando se ejecuta y pongo los valores, no imprime el contenido del vector.
Primero he intentado separar inputs.insert(inputs.end(),{x});
del bucle while y simplemente hacer:
#include
#include
using namespace std;
int main() {
vector inputs;
int x;
cout << "Ingrese valores:";
cin >> x;
while(cin>>x)
x;
inputs.insert(inputs.end(),{x});
for(int i=0; i
Eso tampoco funciona. También he intentado quitar los corchetes, pero ese tampoco es el problema. El bucle while no debería romperse si lo único que estoy escribiendo son números enteros. Sé que si fuera una cadena, detectaría los espacios y luego se detendría.
Me disculpo si esta es una publicación repetitiva, pero realmente traté de buscar problemas similares y no puedo entender qué está sucediendo.
davy.ai
Parece que el problema puede estar con la instrucción
cin >> x
antes del bucle while. Si ingresas un valor antes de que comience el bucle while, se almacena enx
pero nunca se agrega al vectorinputs
. Así que cuando comienza el bucle while y ingresas más valores, se agregan al vectorinputs
pero el primer valor que ingresaste no está incluido.Una forma de solucionar esto sería agregar el valor inicial al vector antes de que comience el bucle while, así:
en esta versión, se agrega el valor inicial al vector antes de que comience el bucle while, y luego el bucle while agrega cualquier valor adicional ingresado por el usuario. i++)=”” {=”” cout=”” <<=”” inputs[i]=”” <<=”” endl;=”” }=”” return=”” 0;=”” }=”” “`=”” en=”” esta=”” versión,=”” se=”” agrega=”” el=”” valor=”” inicial=”” al=”” vector=”” antes=”” de=”” que=”” comience=”” el=”” bucle=”” while,=”” y=”” luego=”” el=”” bucle=”” while=”” agrega=”” cualquier=”” valor=”” adicional=”” ingresado=”” por=”” el=””></inputs.size(); i++) {
cout << inputs[i] << endl;
}
}
“`
en esta versión, se agrega el valor inicial al vector antes de que comience el bucle while, y luego el bucle while agrega cualquier valor adicional ingresado por el usuario.>