Autor
|
Tema: Ayuda con Vectores (solucionado) (Leído 2,790 veces)
|
jadiaz
Desconectado
Mensajes: 2
|
Hola a todos soy nuevo en esto de C++ y la programacion, pero haciendo un ejercicio, encuentro que necesito ingresar nombre y apellidos en una sola linea, por lo que declaro un vector, mas me da un error, que no se como solucionar. Deberia poder ingresar cuantos nombres voy a necesitar, luego al pedir el primer nombre "Roman Ruiz" guardarlo en el primer espacio del vector y asi ir agregando. Creo que el problema pueda estar en la declaracion del vector o al capturar el nombre. Si alguien puede guiarme lo agradeceria mucho. ]#include<iostream> #include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h> int a, b, c, d, noma[5], edad[15], x, y; char nom[50];// esta[15], grup[15]; char nom1[50]; //char nom[15][25]; //string nom; using namespace std; void ingresa_datos () { int cont = 0; cout<<" D A T O S D E A L U M N O S "<<endl; cout<<" Cuantos datos quiere ingresar <15 maximo>: "; cin>>a; for (x=0;x<=a-1;x++) { cout<<" Nombre del Alumno "<<cont+1<<" :"; cin>>nom[x]; cont++; } getch(); clrscr(); }//fin main() { ingresa_datos(); }
|
|
« Última modificación: 9 Octubre 2012, 20:30 pm por jadiaz »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Deberia poder ingresar cuantos nombres voy a necesitar, luego al pedir el primer nombre "Roman Ruiz" guardarlo en el primer espacio del vector y asi ir agregando. El código corregido, aunque con la tan denostada función fflush, hace exactamente lo que quieres: introducir nombre y apellido que se va guardando en el array bidimensional. Supongo que existen otras soluciones más óptimas, pero lo mío no es el C++:#include<iostream> #include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h> using namespace std; void ingresa_datos () { int a, x,cont = 0; cout<<" D A T O S D E A L U M N O S "<<endl; cout<<" Cuantos datos quiere ingresar <15 maximo>: "; cin>>a; char ch,nom[100],nomb [a][100]; for (x=0;x<=a-1;x++) { cout<<" Nombre del Alumno "<<x+1<<" :"; fflush (stdin); fgets(nom,100,stdin); strcpy (nomb [x],nom); } for (x=0;x<=a-1;x++) /*<===Imprime los nombres introducidos*/ cout<<nomb[x]; } main() { ingresa_datos(); }
|
|
|
En línea
|
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
Ya probe, funciona bien. Ahora, |Lo que no hay que hacer en C/C++. Nivel basico|2) fflush(stdin);fflush(stdin) es un invitado casi diario. Pocas veces pasa un dia sin que alguien lo recomiende o lo mencione como la solucion! a los malos comportamientos de las pausas en los programas. STDIN, como su nombre lo indica, significa 'Standard input'. Es decir, el ingreso por teclado. Acorde al Standard, fflush espera solamente un stream de salida (STDOUT: 'Standard Output) por lo que el comportamiento con streams de entrada como STDIN es indefinido. Por mas que en algunas plataformas funcione, o que en algunos compiladores funcione, no deberia ser utilizado. Por el otro lado, para evitar esas pausas fastidiosas es necesario evitar las funciones que dejan basura por doquier (como scanf() y utilizar funciones como la ya mencionada fgets(); En resumen: para que el getchar funcione, limpia el buffer,antes de poner getchar/scanf/cin/gets o alguna orden tipo input usa fflush (stdin);
|
|
|
En línea
|
|
|
|
elkiy
Desconectado
Mensajes: 129
Porque yo soy yo.. y usted es usted.
|
pues mira pone esto: #include <string> using std::string; using std::getline; #include <iostream> using std::cout; using std::endl; using std::cin;
crea una variable en el bloque que tu quieras: string nombre; //crea variable
para que el usuario ingrese su nombre: cout << "Ingrese su nombre: "; getline(cin, nombre); cout << endl;
ok, si queres que el usuario ingrese solamente un nombre con tantos caracteres especificos haz esto. if (nombre.length() <= 15) { } else { nombre = nombre.substr (0,15); cout << " se ha limitado tu nombre a los primeros 15 caracteres\n Bienvenido: "; cout << nombre; cout << endl; }
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Muy interesante, especialmente para mí que me muevo en C y apenas en C++. Muchas gracias por la aportación, repito :muy interesante. Saludos!
|
|
|
En línea
|
|
|
|
jadiaz
Desconectado
Mensajes: 2
|
Agradezco todas las respuestas quedo solucionado con la primera opcion.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Vectores (Solucionado)
Programación C/C++
|
Angel Zero
|
2
|
2,471
|
3 Junio 2011, 06:56 am
por Angel Zero
|
|
|
ayuda en vectores...!!!
Programación C/C++
|
Schiffer04
|
2
|
2,309
|
13 Mayo 2012, 01:57 am
por utz
|
|
|
ayuda con vectores c++
Programación C/C++
|
indict
|
3
|
2,413
|
15 Noviembre 2012, 09:23 am
por norris
|
|
|
Ayuda con vectores
Programación C/C++
|
norris
|
0
|
1,454
|
17 Noviembre 2012, 21:11 pm
por norris
|
|
|
[Ayuda] Vectores
Programación C/C++
|
bemone
|
4
|
2,697
|
23 Agosto 2013, 17:12 pm
por bemone
|
|