Как записать из файла в структуру, а потом в другой файл, не используя потоки
Надо записать из файла с неизвестным количеством строк в структуру, а потом записать в другой файл элементы структуры, но при этом не используя потоки. Помогите это решить.
Примерное содержание файла ( таких строк может быть сколько угодно ):
БМВ Е214У Москва 4 512 91231
Есть решение с использованием потоков:
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
#include <sstream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
int x = 0, y = 0;
string strf,vibor2;
int vibor1;
struct Car
{
string number;
string name;
string punkt;
int ves;
int gryz;
int stoim;
};
string stra;
ifstream in ("D://file.txt");
int count = 0;
getline(in, stra, '\0');
in.seekg(0);
while (getline(in, strf))
{
y++;
}
stringstream ff;
ff.str(stra);
Car* mas = new Car[y];
for (int i = 0; i < y; i++) {
ff >> mas[i].name >> mas[i].number >> mas[i].punkt >> mas[i].ves >> mas[i].gryz >> mas[i].stoim;
}
ofstream file1("D://file2.txt");
file1 << "Автомобили грузоподъемностью больше 2-ух тонн:" << '\n' << '\n';
for (int i = 0; i < y; i++) {
if (mas[i].ves > 2) {
file1 << mas[i].name << " " << mas[i].number << " " << mas[i].punkt << " " << mas[i].ves << " " << mas[i].gryz << " "<< mas[i].stoim << '\n';
}
}
cout << "Запись в файл произведена." << endl;
}
Но нужно сделать без использования потоков. Как мне сказали надо использовать fopen и вот на что меня хватило:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
#include <sstream>
#include <conio.h>
#include <algorithm>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleOutputCP(1251);
SetConsoleCP(1251);
int x = 0, y = 0;
string strf,vibor2;
int vibor1;
struct Car
{
char number[5];
char name[25];
char punkt[25];
int ves;
int gryz;
int stoim;
};
Car cars;
FILE* f;
string stra;
f = fopen("D://file.txt", "rt");
}