我試圖在Rcpp函數中打開一個文件,所以我需要文件名作爲char *或std :: string。將Rcpp :: CharacterVector轉換爲std :: string
到目前爲止,我已經試過如下:
#include <Rcpp.h>
#include <boost/algorithm/string.hpp>
#include <fstream>
#include <string>
RcppExport SEXP readData(SEXP f1) {
Rcpp::CharacterVector ff(f1);
std::string fname = Rcpp::as(ff);
std::ifstream fi;
fi.open(fname.c_str(),std::ios::in);
std::string line;
fi >> line;
Rcpp::CharacterVector rline = Rcpp::wrap(line);
return rline;
}
但很顯然,as
不會爲Rcpp::CharacterVector
,因爲我得到一個編譯時錯誤工作。
foo.cpp: In function 'SEXPREC* readData(SEXPREC*)':
foo.cpp:8: error: no matching function for call to 'as(Rcpp::CharacterVector&)'
make: *** [foo.o] Error 1
有一個簡單的方法來獲得從參數字符串或以某種方式打開來自RCPP函數參數文件?
does Rcpp :: as(ff)work? –
@IanFellows,這是有效的! – highBandWidth