Другие языки программирования и технологии

Есть проблема с программои на С++ Помогите разобратся

Есть код программы на С++ Программа по введенному запросу должна вывести ответ. В программу вводится: инвентарный номер книги, название, число страниц. Задача программы: найти инвентарный номер книги с введенным названием. У меня она работает на оборот- вводя название выводит инвентарный номер книги. Помогите исправить)

Сам код:

#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
int main()
{
struct books
{
char name[20];
int number;
char page[100];
};
const int n=3;
books mas[n];
for (int i=0; i<n;>>mas.number;
cin.get();
cout<< " Input book name: ";
cin.get();
cin.getline(mas.name,20);
cout<< " input count of pages: ";
cin.getline(mas.page,100);
}
cout << "___________________________________________\n" << endl;
cout << "Input book name to find inventory number: " << endl;

int num;
cin >> num;
for (int i=0;i<n;i++)>.number)
cout << mas.name;
printf("\nPress eny key to Exit ...");
getch();
return 0;
}
Зачем подключен string, если он не используется?

> найти инвентарный номер книги с введенным названием.
> работает на оборот- вводя название выводит инвентарный номер книги.
И где здесь наоборот? И в том и в другом случае вводится название.

Два варианта поиска, по названию и инвентарному номеру:

#include <string>
#include <cstdio>
#include <iostream>

using namespace std;

int main() {
    int n, c;
    cout << "Количество книг? ";
    cin >> n;

    struct book {
        string title;
        int id;
        int pagecnt;
    } *books = new book[n];

    for (c = 0; c < n; ++c) {
        fflush(stdin);
        cout << "Книга #" << c + 1 << endl;
        cout << " Название? ";
        getline(cin, books[c].title);
        cout << " Инвентарный номер? ";
        cin >> books[c].id;
        cout << " Кол-во страниц? ";
        cin >> books[c].pagecnt;
    }

    int nid;
    cout << "\nПоиск\nИнвентарный номер? ";
    cin >> nid;
    for (c = 0; c < n && books[c].id != nid; ++c) ;
    if (c != n) {
        cout << "Найдена книга: " << "\n Название: " << books[c].title
            << "\n Кол-во страниц: " << books[c].pagecnt << endl;
    } else {
        cout << "Книги с данным инвентарным номером нет\n";
    }

    fflush(stdin);
    string ntitle;
    cout << "\nВведите название? ";
    getline(cin, ntitle);
    for (c = 0; c < n && books[c].title != ntitle; ++c) ;
    if (c != n) {
        cout << "Найдена книга: " << "\n Инвентарный номер: " << books[c].id
            << "\n Кол-во страниц: " << books[c].pagecnt << endl;
    } else {
        cout << "Книги с данным названием нет\n";
    }

    delete[] books;
    cout << "\nНажмите Enter для выхода";
    cin.get();
}

Программа без проверки корректности входных данных!
Юрий Супрун
Юрий Супрун
79 891
Лучший ответ
чтобы код сюда нормально пролез отделяй "< " и "[ " пробелами иначе майл считает их началом тегов форматирования текста.

в том, что пролезло из кода, взывает некоторое недоумение почему использовано
char page[100];
а не
int page;
с целыми же проще работать, чем с массивами символов
Максим Ремель Спасибо за совет. Вот от туда и проблема- когда меняю на int он отказивается работать