LB9
unknown
c_cpp
3 years ago
2.5 kB
12
Indexable
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
struct BookInfo {
string title;
string authorFirstName;
string authorLastName;
int publicationYear;
};
void saveBookInfo(const string& filename, const BookInfo books[], int size) {
ofstream file(filename);
for (int i = 0; i < size; i++) {
file << books[i].title << ","
<< books[i].authorFirstName << ","
<< books[i].authorLastName << ","
<< books[i].publicationYear << endl;
}
file.close();
}
void loadBookInfo(const string& filename, BookInfo books[], int& size) {
ifstream file(filename);
string line;
size = 0;
while (getline(file, line)) {
BookInfo book;
stringstream ss(line);
string field;
getline(ss, book.title, ',');
getline(ss, book.authorFirstName, ',');
getline(ss, book.authorLastName, ',');
getline(ss, field, ',');
book.publicationYear = stoi(field);
books[size++] = book;
}
file.close();
}
int main() {
string filename = "books.txt";
const int MAX_BOOKS = 10;
BookInfo books[MAX_BOOKS];
int numBooks = 0;
//Додати книги до масиву
books[numBooks++] = {"1984", "George", "Orwell", 1949};
books[numBooks++] = {"Brave New World", "Aldous", "Huxley", 1932};
//Зберегти інформацію про книгу у файлі
saveBookInfo(filename, books, numBooks);
//Завантажити інформацію про книгу з файлу
loadBookInfo(filename, books, numBooks);
//Пошук книги за прізвищем автора
string searchLastName;
cout << "Enter the author's last name (Orwell or Huxley): ";
cin >> searchLastName;
bool bookFound = false;
for (int i = 0; i < numBooks; i++) {
if (books[i].authorLastName == searchLastName) {
cout << "Title: " << books[i].title << endl
<< "Author: " << books[i].authorFirstName << " " << books[i].authorLastName << endl
<< "Publication Year: " << books[i].publicationYear << endl;
bookFound = true;
break;
}
}
if (!bookFound) {
cout << "No book found for the given author's last name." << endl;
}
return 0;
}
Editor is loading...