我对C ++很新,所以请耐心等待。我正试图将文件快速读入2D矢量。
编译时我收到错误no matching function for call to 'std::basic_ifstream::read(std::basic_string&, char&)'
。我尝试重新诠释它,但它也没有用。
std::vector< std::vector<std::string> > data(ROWS, std::vector<std::string>(COLUMNS));
...
reader.read(data[row][column], strlen); <-- compilation chokes here
我正在以二进制模式读取文件,因此我不确定我是否可以使用>>
,因为我认为它会返回格式化输出。
答案 0 :(得分:2)
basic_istream::read()接受char *参数,而不是std :: string。
如果我关注example code:
std::string &str = data[row][column];
str.resize(strlen, ' ');
reader.read(&*str.begin(), strlen);