Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Форматные преобразования fprintf. ⇐ ПредыдущаяСтр 3 из 3
На практике символьная информация почти всегда перемежается с числовыми данными, которые могут быть тем или иным способом преобразованы из машинного формата в соответствующие поля строки. Таким конвертированием данных из внутреннего представления в символьное управляют форматные указатели, задаваемые в качестве одного из параметров функции fprintf. Форматные указатели всегда начинаются с символа %. Управляющая комбинация '\n', следующая за форматным указателем – признак конца строки. Литеральные константы включаются в выводимую строку без каких-либо преобразований. К литеральным константам в последнем примере относится, в частности, признак конца строки. Количество указателей в строке форматов может не соответствовать количеству преобразуемых данных. Если длина списка формальных указателей меньше, чем количество преобразуемых данных, то список циклически повторяется. Так, например, имеем (например, в режиме командной строки):
Форматный указатель '%5d' в данном случае повторился четыре раза. Если количество указателей формата превышает длину выводимого списка, то лишние форматные указатели игнорируются:
Данные, подлежащие преобразованию перед записью в файл, задаются третьим и последующими аргументами входными аргументами функции fprintf. Так, например, если требуется записать в очередную строку текстового файла два целых и одно вещественное значения переменных x, y и z, то это можно реализовать следующим образом:
Значение переменной x преобразуется в формат целого числа (свидетельством этому является буква d в первом форматном указателе) и для его записи в выводной строке отводится 5 позиций. Между первым и вторым форматными указателями располагается один пробел, который считается литерной константой, разделяющей первое и второе числа. Значение переменной y преобразуется по формату %d и занимает в выводной строке 4 позиции. После второго числа вставляется еще один литеральный пробел, расположенный между вторым и третьим указателями формата. Следующие 8 позиций отведены для результата преобразования вещественного числа (свидетельством этому является буква f в третьем форматном указателе), у которого сохраняются три значащие цифры в дробной части (результат форматного преобразования при этом округляется в соответствии с общепринятыми математическими правилами). В целом, следует отметить, что форматные указатели, используемые в функции fprintf, были привнесены в MATLAB после определенной модификации из языка программирования C++. Одной из важнейших модификаций в этом смысле является возможность использования матрицы в качестве элемента выводного списка (в этом случае список форматных указателей определяет преобразование каждого элемента очередного столбца матрицы). В общем случае указатель формата начинается с символа '%', после которого могут быть расположены три необязательные компоненты – флажки, ширина (w) и точность (.n). Указатель завершается при этом одним из символов, характеризующих тип преобразования данных, некоторые из которых представлены в таблице 1.9.2. Следует отметить, что использование целочисленных форматов (%d, %i, %u, %x, %X, %o) предполагает, что преобразуемое значение в самом деле является целым. При использовании целочисленных форматов для преобразования вещественного значения, перед выводом в файл такие величины необходимо округлить с помощью соответствующих функций (fix, round, floor или ceil). Таблица 1.9.2. Символы, характеризующие тип преобразования данных.
Среди литеральных констант в командной строке кроме уже упомянутого ранее признака конца строки ('\n') могут использоваться и другие управляющие символы – Esc-последовательности (см. таблицу 1.9.3). Таблица 1.9.3. Esc-последовательности.
Некоторые символы командной строки задействованы как управляющие: – с символа % начинается форматный указатель; – одиночная кавычка ' открывает и закрывает строку форматов; – обратная косая черта \ использована в Esc-последовательностях. Для включения таких символов в состав литеральных констант и демонстрации их явного отличия (во избежание путаницы) от управляющих комбинаций, в форматной строке действуют следующие соглашения: – %% – воспринимается как символ процента; – \\ – воспринимается как обратная косая черта; – '' – воспринимается как одиночная кавычка; – \” – воспринимается как двойная кавычка. Заметим, что в случае, если в текстовый файл с помощью функции fprintf записывается единственная строка, строка форматных указателей может быть опущена.
|