2012-05-09 3 views
1

Может кто-нибудь скажет мне, какой заголовок использовать для использования getline() в C++. Я использовалФункция 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 
} 
+0

Что значит «не работает»? Будьте более конкретными, пожалуйста. – suszterpatt

+0

, пожалуйста, добавьте код на свой вопрос, который использует getline. –

+0

отредактировал сообщение – user1232138

ответ

2

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

+0

включенный код, вы можете найти, что не так. – user1232138

2

Сообщите свой код, если вы хотите, чтобы люди могли вам помочь. Во всяком случае, 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/

+0

код в комплекте, вы можете найти, что не так. – user1232138

1

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

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

Смежные вопросы