Как записать данные в бинарный файл C++. Именно какая функция отвечает за это!
Заранее спасибо
C/C++
Как записать данные в бинарный файл C++
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;
string save_bin(const vector<string>& text, const string& path = "database.bin") {
ofstream db(path, ios::binary);
if (db.is_open()) {
string acc;
for (const string& line : text) acc += line + '\n';
db.write((char*)acc.c_str(), acc.length());
db.close();
return "database.bin";
}
return "";
}
string save_txt(const vector<string>& text, const string& path = "data.txt") {
ofstream out(path);
if (out.is_open()) {
for (const string& line : text) out << line << '\n';
out.close();
return "data.txt";
}
return "";
}
vector<string> load_bin(const string& path) {
vector<string> text;
ifstream op(path, ios::binary);
if (op.is_open()) {
char box[0x7FFFF] = { 0 };
op.read((char*)&box, sizeof(box));
op.close();
string line = box;
istringstream iss(line);
string tmp;
while (getline(iss, tmp)) text.push_back(tmp);
}
return text;
}
vector<string> load_txt(const string& path) {
ifstream inp(path);
vector<string> text;
if (inp.is_open()) {
string line;
while (getline(inp, line)) text.push_back(line);
inp.close();
}
return text;
}
vector<string> input_text(const size_t length) {
vector<string> text(length);
for (string& line : text) {
cout << "Введите строку: ";
getline(cin, line);
}
puts("");
return text;
}
void show(const vector<string>& text) {
for (const string& line : text) cout << line << '\n';
puts("");
}
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(numeric_limits<size_t>::max(), '\n');
return value;
}
int main() {
system("chcp 1251 > nul");
size_t length = integer("Введите количество строк: ");
puts("");
vector<string> text_inp = input_text(length);
string path_bin = save_bin(text_inp);
vector<string> text_bin = load_bin(path_bin);
show(text_bin);
string path_txt = save_txt(text_inp);
vector<string> text_txt = load_txt(path_txt);
show(text_txt);
system("pause > nul");
}
#include <string>
#include <fstream>
#include <vector>
#include <sstream>
using namespace std;
string save_bin(const vector<string>& text, const string& path = "database.bin") {
ofstream db(path, ios::binary);
if (db.is_open()) {
string acc;
for (const string& line : text) acc += line + '\n';
db.write((char*)acc.c_str(), acc.length());
db.close();
return "database.bin";
}
return "";
}
string save_txt(const vector<string>& text, const string& path = "data.txt") {
ofstream out(path);
if (out.is_open()) {
for (const string& line : text) out << line << '\n';
out.close();
return "data.txt";
}
return "";
}
vector<string> load_bin(const string& path) {
vector<string> text;
ifstream op(path, ios::binary);
if (op.is_open()) {
char box[0x7FFFF] = { 0 };
op.read((char*)&box, sizeof(box));
op.close();
string line = box;
istringstream iss(line);
string tmp;
while (getline(iss, tmp)) text.push_back(tmp);
}
return text;
}
vector<string> load_txt(const string& path) {
ifstream inp(path);
vector<string> text;
if (inp.is_open()) {
string line;
while (getline(inp, line)) text.push_back(line);
inp.close();
}
return text;
}
vector<string> input_text(const size_t length) {
vector<string> text(length);
for (string& line : text) {
cout << "Введите строку: ";
getline(cin, line);
}
puts("");
return text;
}
void show(const vector<string>& text) {
for (const string& line : text) cout << line << '\n';
puts("");
}
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(numeric_limits<size_t>::max(), '\n');
return value;
}
int main() {
system("chcp 1251 > nul");
size_t length = integer("Введите количество строк: ");
puts("");
vector<string> text_inp = input_text(length);
string path_bin = save_bin(text_inp);
vector<string> text_bin = load_bin(path_bin);
show(text_bin);
string path_txt = save_txt(text_inp);
vector<string> text_txt = load_txt(path_txt);
show(text_txt);
system("pause > nul");
}
fwrite() попробуйте
Андрей Буров
А как им пользоваться. Что указывать в скобках
Chingiz Djanalisov
В Гугле забанили? Про Курочку Рябу -- не рассказать?
Ирина Айвазян
Да вопрошающий даже тут вопрос толком не может составить, вот гугл ему и не помогает. Бинарный файл С++..хоть стой, хоть падай...
Правильный вопрос звучит не "как записать данные в бинарный файл С++" (это смысловой бред) а "как записать бинарные данные в файл на С++". Ответов на самом деле множество, но если использовать именно объекты для С++, то пример использования можно посмотреть тут: http://cplusplus.com/reference/ostream/ostream/write/
Похожие вопросы
- Нужно найти в бинарном файле введенные пользователем данные.
- Как достать числа из бинарного файла и работать с ними? Си
- Помогите с файлами C++
- Помогите решить задачку по теме работа с файлами C++
- Input.txt и output.txt. Работа с текстовыми файлами C++.
- Помогите написать код с файлами C++
- Помогите написать код с файлами C++
- Запись и чтение двумерного массива в бинарный файл
- Бинарные данные C++. Как быстрее?
- Модули. Коммуникация между двумя .c файлами.(Си)