バイナリ情報の読み書きに問題があります。単純な文字列をテキスト ファイルに正常に書き込むことができます。この場合、私のファイル 'output.dat' には、「こんにちは、これは文です」という文が含まれています。
しかし、自分の情報を読み返すことはできません。問題を特定できません。後でバイナリファイルから読み取った情報のすべてのバイトを変更するつもりなので、値を文字列として返すと役立ちます。
ご協力いただきありがとうございます。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void write(const string &input) {
fstream output("output.dat", ios::out | ios::binary);
if (output.is_open()) {
output.write(input.c_str(), input.size());
output.close();
}
}
string read(const string &fname) {
int size;
char* buffer;
fstream input(fname, ios::in | ios::binary);
if (input.is_open()) {
input.seekg(0, ios::end);
size = input.tellg();
input.seekg(0, ios::beg);
buffer = new char[size];
input.read(buffer, size);
input.close();
}
string result(buffer);
return result;
}
int main () {
cout << read("output.dat") << endl;
system("pause");
return 0;
}