2011-12-17 69 views
2

我有兴趣在Java和C++之间共享数据,所以JNI。目前所有的C++代码都需要一个文件,所有文件都是用std :: ifstream编写的。我希望能够仅仅通过一个char *并将应用程序从中读取,而不是以某种方式将char *作为ifstream处理,而不是写入文件并再次读取它们。无论如何创建一个基于char *的ifstream?我可以基于char *而不是文件创建std :: ifstream吗?

感谢

回答

5

是的,这就是所谓的std::istringstream。您可以使用它像这样:

#include<sstream> 

.... 

char const* s = "whatever"; 

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

int i; 

iss >> i; 

.... 

如果你的代码需要一个std::ifstream特别,你可以改变它期待一个通用std::istream,从中既继承,阿德里安提及。

+0

感谢您的插件:-) – 2011-12-17 05:02:47

2

有没有想过使用字符串流 - 他们往往像文件一样。你的代码真的需要一个ifstream而不是一个istream吗?如果它是用istream写的,你可以放入一个stringstream/istringstream类。

相关问题