Як ввести масив


 

Масиви є простою і ефективною формою упорядкованого зберігання даних. Вони використовуються практично в кожній комп’ютерній програмі. У більшості випадків інформація в них формується в процесі роботи програми. Але іноді потрібно ввести масив, отримавши дані з того чи іншого джерела.


Вам знадобиться

— текстовий редактор або IDE;
- Компілятор мови C + +.

Інструкція

  1. Введіть масив, запитуючи дані у користувача. Обчисліть або запросите кількість елементів, яке необхідно ввести. Створіть масив необхідного розміру. Додайте в потрібне місце коду програми цикл для ітерірованія по всіх елементах. У циклі запитуйте дані для кожного елемента, при необхідності перевіряючи коректність введення.

    Для здійснення введення даних можна застосовувати різні засоби. Використання функцій scanf і wscanf бібліотеки C є класичним способом. Однак ці функції небезпечні. При переповненні буфера може виникнути помилка захисту.

    Потоки C + + забезпечують зручний і безпечний введення, але також не позбавлені недоліків. Найпростіший приклад заповнення масиву з використанням об’єкта стандартного потоку введення, може виглядати так:

     int aNumbers [10];

    for (int i = 0; i
    {
    std :: cout
    std :: cin >> aNumbers [i];
    std :: cout
    }

    Для надійного заповнення масиву користувача даними має сенс реалізувати власні функції введення. Первинне отримання інформації слід здійснювати в рядок (наприклад, за допомогою об’єктів потоків), яку потім піддавати обробці з метою вилучення коректних значень.
        

  2. Введіть масив з файлу. Використовуйте функції форматованого введення (fscanf, fwscanf) та об’єкти потоків (наприклад, ifstream) для реалізації простих алгоритмів читання. Відстежуйте помилки введення за допомогою методів bad, fail, good, rdstate в разі використання потоків. Простий приклад читання даних з файлу може виглядати так:

    int aNumbers [10];

    std :: ifstream oFileStream ("filename.txt");

    if (! oFileStream.fail ())
    {
    for (int i = 0; (i
    oFileStream >> aNumbers [i];
    }
    else
    std :: cout

    oFileStream.close ();

    У ряді випадків, коли дані у файлі зберігаються у вигляді бінарних послідовностей, можна здійснити їх читання цілком безпосередньо в область пам’яті, займаної масивом. Проте варто контролювати обсяг завантажується інформації.

  3. Введіть масив безпосередньо в код програми у вигляді статичних даних. Використовуйте літерали масивів для ініціалізації відповідних змінних. Наприклад, масив значень типу int невизначеної довжини, що є статичним членом класу, і декларований як:

    class CMyClass
    {
    ...
    static const int m_anMyArray [];
    ...
    };

    повинен инициализироваться наступним чином:

    const int CMyClass :: m_anMyArray [] = {10, 20, 30, 40};

    Подібним методом можна вводити масиви структур будь-якої складності в вихідний код програм.