функция getline не работает

Может кто-нибудь сказать мне, какой заголовок использовать для использования getline() в С++. я использовал

#include<iostream>
#include<string>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

ни один из них не работает.

Вот весь код, который я написал до сих пор

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>
#include<set>
#include<map>
using namespace std;

class TextQuery
{
    typedef map<string, set<string::size_type> > word_map;
    TextQuery(ifstream &file)
    {
        FillLineVector(file);
        BuildMap(file);
    }

    void query(string);
private:
    word_map map;
    vector<string> LineVector;
    void FillLineVector(const ifstream&);
    void BuildMap(const ifstream&);
};

void TextQuery::FillLineVector(const ifstream& file)
{
    string line;
    while(getline(file,line)); //error:getline identifier not found
}

person user1232138    schedule 09.05.2012    source источник
comment
Что вы имеете в виду под не работает? Будьте более конкретными, пожалуйста.   -  person suszterpatt    schedule 09.05.2012
comment
пожалуйста, добавьте код к вашему вопросу, который использует getline.   -  person Ozair Kafray    schedule 09.05.2012


Ответы (3)


Вам нужна iostream и, возможно, string, если вы используете эту версию. Почему это не сработает, останется загадкой, поскольку вы не предоставили никакой дополнительной информации.

person Edward Strange    schedule 09.05.2012

Опубликуйте свой код, если хотите, чтобы люди могли вам помочь. В любом случае, getline следует использовать как таковой:

// getline with strings
#include <iostream>
#include <string>
using namespace std;

int main () {
  string str;
  cout << "Please enter full name: ";
  getline (cin,str);
  cout << "Thank you, " << str << ".\n";
}

Как показано в http://www.cplusplus.com/reference/string/getline/

person Cosmin Pârvulescu    schedule 09.05.2012

Ваши функции принимают ifstream, а не istream, поэтому вам нужно будет включить <fstream>, чтобы получить определение этого.

Однако вам, вероятно, лучше сделать функции более общими, взяв istream, если по какой-то причине они не могут работать только с файлом. В этом случае вам понадобятся только <iostream> и <string>, которые у вас уже есть.

person Mike Seymour    schedule 09.05.2012