有人可以告诉我使用哪个标头在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 :(得分:2)
如果您使用的是版本,则需要iostream
,可能还需要string
。为什么这不起作用必须保持神秘,因为你没有提供额外的信息。
答案 1 :(得分: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";
}
所示
答案 2 :(得分:1)
您的功能采用ifstream
而不是istream
,因此您必须包含<fstream>
才能获得该定义。
但是,您可能最好通过istream
使函数更通用,除非由于某种原因它们只能使用文件。在这种情况下,您只需要<iostream>
和<string>
,这是您已经拥有的。