Título: ayuda con getline
Publicado por: EdgarKrieger 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: #include <iostream> #include <fstream> using namespace std; class Fichero{ ofstream Datos; public: void Ingresar(); }; void Fichero::Ingresar(){ this->Datos.open("Rojo.txt"); cout<<"Dame algunas frases."<<endl; string f; cin.getline(f,100); Fichero >> f; } int main(){ Fichero Edgar; Edgar.Ingresar(); return 0; }
y los errores que me manda son estos. ||=== Build file: "no target" in "no project" (compiler: unknown) ===| C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp||In member function 'void Fichero::Ingresar()':| C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|15|error: no matching function for call to 'std::basic_istream<char>::getline(std::string&, int)'| C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|15|note: candidates are:| 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]| C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\istream|618|note: candidate expects 3 arguments, 2 provided| 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]| 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*}'| C:\Users\Edgar\Desktop\ArchivosC++\Ejercicio6.1.cpp|16|error: expected unqualified-id before '>>' token| ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
ayuda por favor, ya me duele la cabeza jajajajaaajjaa
Título: Re: ayuda con getline
Publicado por: class_OpenGL en 26 Febrero 2016, 02:39 am
El método std::istream::getline está definido así: istream& getline (char* s, streamsize n ); 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í: istream& getline (istream& is, string& str); istream& getline (istream& is, string& str, char delim);
Título: Re: ayuda con getline
Publicado por: EdgarKrieger 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. ;-) ;-) ;-)
Título: Re: ayuda con getline
Publicado por: class_OpenGL en 26 Febrero 2016, 23:50 pm
Me alegro haber servido de ayuda! Marca el tema como resuelto para mejor organización ;D
|