Skip to main content
LibreTexts - Ukrayinska

4.1: Вхід і вихід

  • Page ID
    29730
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Ми бачили використання printf () для надсилання інформації на екран комп'ютера. printf () - це дуже велика і складна функція з безліччю можливих варіантів специфікаторів формату. Специфікатори формату - це «% речей», які використовуються як заповнювачі для значень. Деякі приклади:

    Таблиця\(\PageIndex{1}\): Типи форматів друку.
    % f поплавок
    %lf подвійний (довгий поплавок)
    %e float за допомогою позначення показника
    % г float, використовуючи коротший стиль e або f
    %d десяткове ціле число
    %ld десяткове довге ціле число
    %x шістнадцяткове (шістнадцяткове або базове 16)
    % o вісімкове (основа 8) ціле число
    %u ціле число без знака
    %c одиночний символ
    %s символьний рядок

    Припустимо, що ви хотіли роздрукувати значення змінної ans в десятковій, шістнадцятковій і вісімковій. Наступна інструкція зробить все це:

    printf(“The answer is %d, or hex %x, or octal %o.\n”, ans, ans, ans );

    Зверніть увагу, як позначаються три змінні. Це важливо. Якщо ви надрукували щось шістнадцятковим без певної форми мітки, ви можете не знати, чи було воно шістнадцятковим або десятковим. Наприклад, якщо ви тільки що побачили число «23», як би ви знали, що це 23 десяткових або 23 шістнадцяткових (35 десяткових)? З цього приводу, як би ви встановили шістнадцяткову константу в коді C? Компілятор також не мав би можливості «знати». Щоб обійти це, шістнадцяткові значення мають префікс 0x. Таким чином, у нас є 0x23 для шістнадцяткової 23. Функція printf () не автоматично додає 0x на виході. Причина полягає в тому, що це може виявитися відволікаючим, якщо у вас є таблиця, заповнена лише шістнадцятковими значеннями. Досить просто використовувати 0x%d замість лише %d для вихідного формату.

    Ви також можете додати специфікатор ширини поля. Наприклад, %5d означає вивести ціле число в десятковій комі з мінімальними пробілами 5. Аналогічно, %6.2f означає вивести значення з плаваючою комою, використовуючи мінімум 6 пробілів. Частина «.2» є специфікатором точності і в цьому випадку вказує на 2 цифри після коми, які повинні бути використані. Як бачите, це дуже потужна і гнучка функція!

    Функція дзеркального введення - scanf (). Це схоже на операцію введення Python. Хоча ви можете запитати відразу кілька значень, як правило, найкраще запитувати одне значення при використанні цієї функції. Він використовує той самий тип специфікаторів формату, що і printf (). Є один важливий момент, який слід зазначити. Функція scanf () повинна знати, де помістити введене значення в пам'ять комп'ютера. Просто інформувати його про ім'я змінної недостатньо. Ви повинні сказати йому, де в пам'яті знаходиться змінна, іншими словами, необхідно вказати адресу змінної. C використовує & оператор для позначення «адреса». Наприклад, якщо ви хочете отримати ціле число від користувача і помістити його в змінну під назвою напруга, ви можете побачити фрагмент програми, як так...

    printf(“Please enter the voltage:”);
    scanf(“%d”, &voltage);

    Це дуже часто для нових програмістів, щоб забути &. Будьте попереджені!