将 ifstream 对象传递给函数并在两者之间使用 getline()
passing ifstream object to function and use getline() in between
我想通过调用一个函数打开一个名为 1.board 的文件,然后使用 getline 函数将它的字符打印到新的 line.But 这显示了很多错误。
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using std::ifstream;
using std::cout;
using std::string;
using std::vector;
void ReadBoardFile(ifstream& search)
{
string line;
search.open("1.board");
while(getline("1.board",line))
{
cout<<line<<"\n";
}
}
int main() {
ifstream fin;
ReadBoardFile(fin);
}
我不知道我在做什么wrong.I 就是找不到完美而准确的答案。
帮助,如果你 can.Thanku!!!!!
所以这里是您重写的代码,因此它可以工作。
两个更改,首先 getline
的第一个参数应该是您正在读取的流,而不是文件名。我猜你写那篇文章的时候注意力不集中。
第二个更改,我移动了流变量 search
,以便它在您的 ReadBoardFile
函数中是本地的。您发布的代码中没有理由将其作为参数传递。您可能希望将文件名作为参数传递,但我会留给您进行更改。
void ReadBoardFile()
{
ifstream search("1.board");
string line;
while(getline(search,line))
{
cout<<line<<"\n";
}
}
int main() {
ReadBoardFile();
}
我想通过调用一个函数打开一个名为 1.board 的文件,然后使用 getline 函数将它的字符打印到新的 line.But 这显示了很多错误。
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using std::ifstream;
using std::cout;
using std::string;
using std::vector;
void ReadBoardFile(ifstream& search)
{
string line;
search.open("1.board");
while(getline("1.board",line))
{
cout<<line<<"\n";
}
}
int main() {
ifstream fin;
ReadBoardFile(fin);
}
我不知道我在做什么wrong.I 就是找不到完美而准确的答案。 帮助,如果你 can.Thanku!!!!!
所以这里是您重写的代码,因此它可以工作。
两个更改,首先 getline
的第一个参数应该是您正在读取的流,而不是文件名。我猜你写那篇文章的时候注意力不集中。
第二个更改,我移动了流变量 search
,以便它在您的 ReadBoardFile
函数中是本地的。您发布的代码中没有理由将其作为参数传递。您可能希望将文件名作为参数传递,但我会留给您进行更改。
void ReadBoardFile()
{
ifstream search("1.board");
string line;
while(getline(search,line))
{
cout<<line<<"\n";
}
}
int main() {
ReadBoardFile();
}