gpt4 book ai didi

C++,协作 FILE* 和 std 流

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:17 28 4
gpt4 key购买 nike

我需要在 C++ 项目中使用现有的 C 库。我的问题是 C 现有库使用 FILE* 作为流,是否有一种符合标准的方式来使用 FILE* 流来放入或从 C++ 流中获取?

我尝试在 C++11 标准中寻找 FILE*,但它只在很少的例子中出现。

 -

编辑,例子。
我们有一个写入文件*的函数:
fputs(char const*, 文件*)

我们有一个输出 C++ 流:
自动 strm = std::cout;

我能否以符合标准的方式使用 fputs 写入 strm?

您还可以考虑一个类似的输入示例,其中包含从 FILE* 和输入 C++ 流读取的 C 函数。

最佳答案

检查这个答案,

https://stackoverflow.com/a/5253726/1807864

#include <cstdio>
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
ofstream ofs("test.txt");
ofs << "Writing to a basic_ofstream object..." << endl;
ofs.close();

int posix_handle = ::_fileno(::fopen("test.txt", "r"));

ifstream ifs(::_fdopen(posix_handle, "r")); // 1

string line;
getline(ifs, line);
ifs.close();
cout << "line: " << line << endl;
return 0;
}

关于C++,协作 FILE* 和 std 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17195279/

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