我正在尝试从每个文件打印第一行,但我认为它输出的是地址。
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
void FirstLineFromFile(ifstream files[], size_t count)
{
const int BUFSIZE = 511;
char buf[BUFSIZE];
ifstream *end, *start;
for (start = files, end = files + count; start < end; start++)
{
cout << start->getline(buf, sizeof(buf)) << '\n';
}
}
答案 0 :(得分:1)
流不应该按值传递。此代码按值传递流数组。你可以尝试传递一个向量并对它们进行交互。
void FirstLineFromFile(vector<ifstream*> files) {
for (int i=0; i<files.size(); ++i) {
string s;
getline(*files[i], s);
cout << s << endl;
}
}
答案 1 :(得分:0)
ifstream->getline不返回字符串作为其返回值。您需要在单独的行中打印出已填充的缓冲区。
for (start = files, end = files + count; start < end; start++)
{
start->getline(buf, sizeof(buf));
cout << buf << '\n';
}