我有兴趣在Java和C++之间共享数据,所以JNI。目前所有的C++代码都需要一个文件,所有文件都是用std :: ifstream编写的。我希望能够仅仅通过一个char *并将应用程序从中读取,而不是以某种方式将char *作为ifstream处理,而不是写入文件并再次读取它们。无论如何创建一个基于char *的ifstream?我可以基于char *而不是文件创建std :: ifstream吗?
感谢
我有兴趣在Java和C++之间共享数据,所以JNI。目前所有的C++代码都需要一个文件,所有文件都是用std :: ifstream编写的。我希望能够仅仅通过一个char *并将应用程序从中读取,而不是以某种方式将char *作为ifstream处理,而不是写入文件并再次读取它们。无论如何创建一个基于char *的ifstream?我可以基于char *而不是文件创建std :: ifstream吗?
感谢
是的,这就是所谓的std::istringstream
。您可以使用它像这样:
#include<sstream>
....
char const* s = "whatever";
std::istringstream iss(std::string(s));
int i;
iss >> i;
....
如果你的代码需要一个std::ifstream
特别,你可以改变它期待一个通用std::istream
,从中既继承,阿德里安提及。
有没有想过使用字符串流 - 他们往往像文件一样。你的代码真的需要一个ifstream而不是一个istream吗?如果它是用istream写的,你可以放入一个stringstream/istringstream类。
感谢您的插件:-) – 2011-12-17 05:02:47