elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con getline
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con getline  (Leído 3,042 veces)
EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
ayuda con getline
« en: 26 Febrero 2016, 01:24 am »

Hola pues mi duda es porque me manda error cuando utilizo cin.getline(), apenas estoy aprendiendo a crear archivos y me estreso mucho cuando algo no sale jejejejejejejeje, ayuda por favor mi código es este:

Código
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. class Fichero{
  6.    ofstream Datos;
  7. public:
  8.    void Ingresar();
  9. };
  10.  
  11. void Fichero::Ingresar(){
  12.    this->Datos.open("Rojo.txt");
  13.    cout<<"Dame algunas frases."<<endl;
  14.    string f;
  15.    cin.getline(f,100);
  16.    Fichero >> f;
  17. }
  18.  
  19. int main(){
  20.    Fichero Edgar;
  21.    Edgar.Ingresar();
  22.    return 0;
  23. }
  24.  


y los errores que me manda son estos.

Código
  1. ||=== Build file: "no target" in "no project" (compiler: unknown) ===|
  2. C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp||In member function 'void Fichero::Ingresar()':|
  3. C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|15|error: no matching function for call to 'std::basic_istream<char>::getline(std::string&, int)'|
  4. C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|15|note: candidates are:|
  5. C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\istream|618|note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::getline(std::basic_istream<_CharT, _Traits>::char_type*, std::streamsize, std::basic_istream<_CharT, _Traits>::char_type) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::char_type = char; std::streamsize = int]|
  6. C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\istream|618|note:   candidate expects 3 arguments, 2 provided|
  7. C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\istream|427|note: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::getline(std::basic_istream<_CharT, _Traits>::char_type*, std::streamsize) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::char_type = char; std::streamsize = int]|
  8. C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\istream|427|note:   no known conversion for argument 1 from 'std::string {aka std::basic_string<char>}' to 'std::basic_istream<char>::char_type* {aka char*}'|
  9. C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|16|error: expected unqualified-id before '>>' token|
  10. ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
  11.  


ayuda por favor, ya me duele la cabeza jajajajaaajjaa


En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: ayuda con getline
« Respuesta #1 en: 26 Febrero 2016, 02:39 am »

El método std::istream::getline está definido así:
Código
  1. istream& getline (char* s, streamsize n );
  2. istream& getline (char* s, streamsize n, char delim );

Es decir, el primer parámetro es de tipo cadena estilo C (es decir, tipo char*) y lo que tu le estás pasando es una cadena estilo C++, es decir, de tipo string. Para solucionar esto, tienes dos opciones: o bien declarar la cadena 'f' como char f[100], o bien usas la función std::getline, la cual está definida así:

Código
  1. istream& getline (istream& is, string& str);
  2. istream& getline (istream& is, string& str, char delim);


« Última modificación: 26 Febrero 2016, 02:46 am por class_OpenGL » En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
Re: ayuda con getline
« Respuesta #2 en: 26 Febrero 2016, 17:06 pm »

Muchas gracias, me sirvió de manera excelente, tenia otro error en la linea que seguía, ya lo pude arreglar, muchas gracias de nuevo.    ;-) ;-) ;-)
En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: ayuda con getline
« Respuesta #3 en: 26 Febrero 2016, 23:50 pm »

Me alegro haber servido de ayuda! Marca el tema como resuelto para mejor organización ;D
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
getline()
Programación C/C++
Geek7 3 11,524 Último mensaje 29 Julio 2010, 20:52 pm
por Geek7
Ayuda! Por favor. Tengo problema con memoria dinámica en c++ y función getline
Programación C/C++
DeathStar92 0 2,059 Último mensaje 25 Noviembre 2012, 19:56 pm
por DeathStar92
getline() !!!
Programación C/C++
chicainge 2 3,108 Último mensaje 14 Septiembre 2014, 19:22 pm
por chicainge
Ayuda con error de cin.getline
Programación C/C++
Black cracker 1 2,173 Último mensaje 16 Agosto 2015, 13:13 pm
por ivancea96
Ayuda error con la función getline
Programación C/C++
Guayavas 1 2,987 Último mensaje 8 Octubre 2017, 11:50 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines