我可以基于char*而不是文件创建std :: ifstream吗?

And*_*der 2 c++ java-native-interface

我有兴趣在Java和C++之间共享数据,所以JNI.目前所有C++代码都需要一个文件,所以它都是用std :: ifstream编写的.而不是编写文件并再次读取它们,我希望能够只传递一个char*并从中读取应用程序,而不是以某种方式将char*视为ifstream.反正有没有创建一个基于char*的ifstream?

谢谢

Kei*_*yne 5

是的,它被称为std::istringstream.你可以像这样使用它:

#include<sstream>

....

char const* s = "whatever";

std::istringstream iss(std::string(s));

int i;

iss >> i;

....
Run Code Online (Sandbox Code Playgroud)

如果您的代码需要std::ifstream 特定的,您可以将其更改为期望一个泛型std::istream,从而继承,如Adrian所提到的.

  • 我现在感觉很脏 (2认同)