Untitled
unknown
abap
5 years ago
2.9 kB
16
Indexable
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <fstream>
#include<stdio.h>
#include<conio.h>
using namespace std;
FILE* fl;
typedef struct {
char naz[30];
char autor[30];
int year;
int page;
}
Books;
Books book[30]; //Массив структур
char name[20]; //Имя файла
int nst;
int n = 0;
int years;
int i;
char namet[30];
int menu(); // Меню
void spisok(); //Ввести список
void resf();//Вывести результат в файл
void resc(); //Вывести на экран за последний месяц
void VivodNaEcran(); // Вывести на экран все
int main()
{
while (true)
{
switch (menu())
{
case 1: spisok(); break;
case 2: resf(); break;
case 3: VivodNaEcran(); break;
case 4: resc(); break;
return 0;
default: "Viberite pravilno!";
}
}
}
int menu() //Меню
{
cout << "1. Vvesti spisok" << endl;
cout << "2. Vivesti v fail" << endl;
cout << "3. Vivesti na ekran vse" << endl;
cout << "4. Vivesti book" << endl;
int i;
cin >> i;
return i;
}
void spisok() // Ввести список
{
cout << "Vvedite kolichestvo" << endl;
cin >> nst;
for (int i = 0; i < nst; i++)
{
cout << "Vvedite nazvanie:" << endl;
cin >> book[i].naz;
cout << "Vvedite autor:" << endl;
cin >> book[i].autor;
cout << "Vvedite page:" << endl;
cin >> book[i].page;
cout << "Vvedite year:" << endl;
cin >> book[i].year;
}
}
void resf() // Вывести результат в файл
{
FILE* fl;
fopen_s(&fl, "file.txt", "w"); // Здесь нужно было присвоить fopen для fl, также заменил fopen_s на fopen
for (int i = 0; i < nst; i++)
{
if (book[i].year != 0) {
fprintf(fl, "%s %s %u %u", book[i].naz, book[i].autor, book[i].page, book[i].year);
}
cout << endl;
}
fclose(fl);
}
void VivodNaEcran() //Вывести все на экран
{
n = 0;
FILE* fl; fopen_s(&fl, "file.txt", "r");
if (fl != NULL)
{
do {
n++;
fscanf(fl, "%s %s %d %d", book[n].naz, book[n].autor, &book[n].page, &book[n].year);
cout << book[n].naz << " " << book[n].autor << " " << book[n].page << " " << book[n].year << endl;
} while (!feof(fl));
}
else {
cout << "ERROR";
}
fclose(fl);
}
void resc() //Вывести на экран книги после заданного года
{
n = 0;
int PrevYear;
cout << " Enter year before " << endl;
cin >> PrevYear;
FILE* fl; fopen_s(&fl, "file.txt", "r");
if (fl != NULL)
{
do {
n++;
fscanf(fl, "%s %s %d %d", book[n].naz, book[n].autor, &book[n].page, &book[n].year);
} while (!feof(fl));
}
for (int i = 0; i <= n; i++)
{
if (PrevYear < book[i].year)
{
cout << book[i].naz << " " << book[i].autor << " " << book[i].page << " " << book[i].year << endl;
}
}
fclose(fl);
}Editor is loading...