我正在尝试将数据从二进制文件读取到std :: string。这是我最初尝试的内容。
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char const *argv[])
{
fstream file("output.bin" , ios::out | ios::binary | ios::in);
string my_str(5, '\0');
file.read(my_str.c_str(), 5);
cout << "String = " << my_str<< endl ;
}
Run Code Online (Sandbox Code Playgroud)
然后编译器给出了错误:
error: invalid conversion from ‘const char*’ to ‘std::basic_istream<char>::char_type* {aka char*}’ [-fpermissive]
file.read(my_str.c_str(), 5);
Run Code Online (Sandbox Code Playgroud)
据我了解,c_str()返回一个const指针,该指针不能在read方法中使用,因此我做了一点改动(您可以在下面看到)。有一个更好的方法吗 ?
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char const *argv[])
{
fstream file("output.bin" , ios::out | ios::binary …Run Code Online (Sandbox Code Playgroud)