Нужно создать приложение которое бы записывала структуру в файл и выводило из файла на экран.
Попытался это реализовать.
Но к сожалению не записывает всю структура в файл. Или некорректно записывает.
Вот сам код который я пытался реализовать:
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
#include <iostream>
#include <fstream>
using namespace std;
void inputf(ifstream &f, char a[300], char b[300], char c[300], char d[300]);
void outputf1(ofstream &f, char a[300], char b[300], char c[300], char s[40]);
void main() // Основная функция
{
int c;
setlocale(LC_ALL, "Russian");
cout << "Вывести на экран-1\nЗаписать в файл-2" << endl;
cin >> c;
if (c == 2)
{
int const N = 3;
int i,j=0;
struct vvod {
char fam[300];
char id[300];
char number[300];
};
vvod v[N];
for (i = 0; i < N; i++)
{
cout << "Введите фaмилию(Eng):" << endl; cin >> v[i].fam;
cout << "Введите ID:" << endl; cin >> v[i].id;
cout << "Введите номер:" << endl; cin >> v[i].number;
}
ofstream f1;
for (i = 0; i < N; i++)
{
outputf1(f1, v[i].fam, v[i].id, v[i].number, "writer.txt");
}
}
else if (c == 1)
{
char str[40];//Строковая переменная (для пути к файлу)
cout << "\n Введите имя файла \n";
cin >> str;
char v[900];
char q[300];
char w[300];
char e[300];
ifstream f;
inputf(f,str,q,w,e);
}
}
void outputf1(ofstream &f, char a[300], char b[300], char c[300], char s[40])//Функция для записи
{
f.open(s);//Открываем файл
//Проверка успешности открытия файла:
if (f.fail()) {
cout << "\n Ошибка открытия файла";
exit(1);
}
f << a;//записываем переменную в файл
f << b;
f << c;
f.close();//Закрываем файл
}
void inputf(ifstream &f, char a[300],char b[300], char c[300],char d[300] )//Функция для чтения
{
f.open(a);//Открываем файл
//Проверка успешности открытия файла:
if (f.fail()) {
cout << "\n Ошибка открытия файла";
exit(1);
}
f >> b;//Читаем переменную из файла
f >> c;
f >> d;
cout << b << endl;
cout << c << endl;
cout << d << endl;
f.close();//Закрываем файл
}
Подскажите где накосячил.