gpt4 book ai didi

c++ - 从函数 C++ 返回文件 ID

转载 作者:太空宇宙 更新时间:2023-11-04 11:23:01 25 4
gpt4 key购买 nike

我想从一个函数返回一个文件 ID。我的函数应该是什么类型?

这是一个测试“main”,其执行与所需功能非常相似。

    // this c++ code tests statements
// #include </home/steve/cpincludes>
#include <iostream> // std::cout
#include <fstream> // std::ifstream
#include <string>
using namespace std;

int main(){ // replace this line with type getid(){
const char* cname ="test.txt";
string line;
std::string name=cname;
std::ifstream is;
cout << cname <<" "<< name <<'\n';

is.open(name.c_str(),ios::in | std::ifstream::binary);

while ( getline (is,line) ) { //test read
cout << line << '\n'; }
return (0);} // replace this line with return (is) ;}

最佳答案

从 C++11 开始,您可以移动具体的 iostream:

std::ifstream foo(std::string const& path)
{
std::ifstream stream{path};
// Do whatever
return stream;
}

这将适用于 libc++ 或 VS > 2010,但不适用于 libstdc++(直到与 gcc 5.0 捆绑在一起的下一个版本的 libstdc++ 发布)。

如果你的库不支持移动流,你将不得不使用指针

std::unique_ptr<std::ifstream> foo(std::string const& path)
{
auto stream = std::make_unique<std::ifstream>(path);
// Do whatever
return stream;
}

或将流作为引用传递

void foo(std::ifstream& stream)
{
// Do whatever
}

关于c++ - 从函数 C++ 返回文件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27630020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com