ayuda con getline

Iniciado por EdgarKrieger, 26 Febrero 2016, 01:24 AM

0 Miembros y 1 Visitante están viendo este tema.

EdgarKrieger

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 (cpp) [Seleccionar]
#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.

Código (cpp) [Seleccionar]
||=== 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
"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei

class_OpenGL

#1
El método std::istream::getline está definido así:
Código (cpp) [Seleccionar]
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í:

Código (cpp) [Seleccionar]
istream& getline (istream& is, string& str);
istream& getline (istream& is, string& str, char delim);

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

EdgarKrieger

Muchas gracias, me sirvió de manera excelente, tenia otro error en la linea que seguía, ya lo pude arreglar, muchas gracias de nuevo.    ;-) ;-) ;-)
"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei

class_OpenGL

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

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