2011-12-17 3 views
2

JNI와 같이 Java와 C++간에 데이터를 공유하는 데 관심이 있습니다. 현재 모든 C++ 코드는 파일이 std :: ifstream의 관점에서 작성되도록 기대합니다. 파일을 작성하고 다시 읽는 대신 char * 이상의 값을 전달하고 그 대신 char *를 ifstream으로 처리하는 응용 프로그램을 읽게하고 싶습니다. 어쨌든 char *를 기반으로하는 ifstream을 만들 수 있습니까?파일이 아닌 char *를 기반으로 std :: ifstream을 만들 수 있습니까?

감사

답변

5

네, std::istringstream라고. 이처럼 사용할 수 있습니다 코드가 std::ifstream특히을 기대

#include<sstream> 

.... 

char const* s = "whatever"; 

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

int i; 

iss >> i; 

.... 

경우, 아드리안가 언급 한대로, 모두 상속되는 일반적인 std::istream을, 기대를 변경할 수 있습니다.

+0

플러그 주셔서 감사합니다 .-) –

+2

지금은 더러워졌습니다. –

+0

LOL 및 LOL 및 LOl 15자를 넘는 지금 –

2

문자열 스트림을 사용하는 것에 대해 생각해보십시오. 종종 파일처럼 작동합니다. ifstream이 아니라 ifstream이 실제로 필요합니까? istream로 쓰여진 경우에는 stringstream/istringstream 클래스에서 삭제할 수 있습니다.

관련 문제