Título: Duda sobre algunas funciones de C++ Publicado por: vojok en 2 Enero 2016, 17:01 pm Hola, estoy armando un programita en C++ sobre el control de alumno (lo armo para mi) y me surge un problema que cuando quiero guardar el nombre y apellido separado por un espacio no me lo guarda con Cin ,entonces estuve buscando y probe con Cin.getline(variable,longitud,caracter de fin); pero tampoco me funciona me tira error como que no es standar y no se que mas , entonces probe con getline(cin,variable); y este me funciono pero estuve buscando y no se bien para que sirve estas funciones, alguien me podria aclararlas?:
Cin.getline(); getline(cin,variable);//no entiendo para que va el cin en el primer parametro ni cual es la funcion cin.get();//este ultimo lo vi mucho para pausar el programa pero no se su verdadera funcion. getch();//esto me parece que es para C Título: Re: Duda sobre algunas funciones de C++ Publicado por: ivancea96 en 2 Enero 2016, 17:16 pm Empezando por getline: http://www.cplusplus.com/reference/string/string/getline/ (http://www.cplusplus.com/reference/string/string/getline/)
Código Guarda lo leído hasta el salto de línea (o hasta el delimitador, si se lo pones). Lo guarda en el segundo parámetro. El primer parámetro, es un stream de entrada. Por ejemplo, cuando escribes en consola y pulsas enter, envías la cadena al streaming de entrada del programa ("cin" es un objeto que maneja el streaming de entrada por defecto) Así pues, de forma resumida y usando tu ejemplo, le dices que lea de "cin", y lo deposite en "variable" Luego, cin.getline, o más precisamente, el método getline de los objetos "istream", hace lo mismo que la función getline anterior, pero en este caso, los almacena en una cadena de tipo "char*", en vez de en una string. Si utilizas C++, salvo que sea necesario, te recomiendo usar la anterior: "getline(cin, t)" Mientras que getline obtiene todos los caracteres hasta el delimitador, get obtiene solo 1 caracter. Información más detallada, la tienes en http://www.cplusplus.com/reference/istream/istream/get/ (http://www.cplusplus.com/reference/istream/istream/get/) No se recomienda el uso de getch puesto que no es estándar. Su función es devolver un caracter correspondiente a la siguiente pulsación de tecla (no requiere pulsar enter) Título: Re: Duda sobre algunas funciones de C++ Publicado por: vojok en 2 Enero 2016, 17:28 pm muchas gracias por responder y tomarte el tiempo de explicarlo , ahora me surgio un problema cuando le pongo el getline() me saltea la linea para poner el nombre y apellido y se va a la otra columna fecha no se que estoy haciendo mal ,la columna los manejo con gotoxy aca el codigo:
Código:
Título: Re: Duda sobre algunas funciones de C++ Publicado por: ivancea96 en 2 Enero 2016, 17:43 pm He visto que usas "cin>>" en algunos puntos. Hay unt ema importante.
"cin>>" coge de la entrada caracteres hasta X punto. Si tú introduces "78456\n", va a leer el entero 78456 (en caso de que hagas "cin>>int" claro). El "\n" ese va a quedar en el buffer. Esto implica que la siguiente llamada a getline va a leer hasta el "\n", es decir, nada. Siquiera va a pedir entrada por teclado. Visto el aspecto técnico, hay formas de arreglarlo: [ul]
Código La función stoi: http://www.cplusplus.com/reference/string/stoi/ También tienes para convertir a float: stof Título: Re: Duda sobre algunas funciones de C++ Publicado por: vojok en 2 Enero 2016, 17:54 pm Muchisimas gracias ,me salvaste de romperme la cabeza con la mesa jeje ,llevaba rato con este tema y no encontraba con la solucion y era tan facil jeje, muchas gracias.
|