我正在尝试在files.cpp中创建一个带有3的函数getIdFromFile 参数:(表示文件名,istream和ostream的C ++字符串)并返回一个int。
这是我的起始代码:
// files.cpp
#include "files.hpp"
#include <iostream>
#include <fstream>
using std::ofstream;
using std::ifstream;
using std::ostream;
#include <sstream>
using std::string;
using std::stringstream;
using std::istream;
using std::istringstream;
int getIdFromFile (std::string(fileName),std::istream &usersData, std::ostream theStream){
&usersData.open(fileName, std::ios::in|std::ios::binary);
}
我收到了错误:
No member named 'open' in 'std::__1::basic_istream<char>'
我需要在标准库中包含或添加某些内容吗?
由于
答案 0 :(得分:0)
你应该考虑
int getIdFromFile (std::string fileName, std::ifstream &usersData, std::ostream &theStream)
或
int getIdFromStream (std::istream &usersData, std::ostream &theStream)
在第一种情况下,您希望打开一个新的或已关闭的文件流。您需要定义所有参数(例如模式)。原则上,您应该预见到一些错误处理,例如,如果文件名无效。
在第二种情况下,您将在其他位置打开该文件并传递流。但是如果你想要的话,你也可以传递一个字符串流。