Теория вычислительных процессов и структур — страница 7

  • Просмотров 6048
  • Скачиваний 318
  • Размер файла 78
    Кб

формате, либо в формате экспоненциальной записи. Форматирование строк и символов: %c - тип char, выводится без изменений, даже если является «непечатаемым» символом (численное значение символа можно вывести, используя код формата для целых чисел, это может понадобиться при невозможности отображения символа на терминале); %s - соответствующий аргумент считается строкой ( указателем на массив символов). Содержимое строки передаётся

дословно в выходной поток, строка должна заканчиваться нулевым символом. Спецификации формата могут также включать информацию о минимальной ширине поля, в котором выводится аргумент, и точности. В случае целочисленного аргумента под точностью понимается максимальное число выводимых цифр. Если аргумент имеет тип float или double, то точность задаёт число цифр после десятичной точки. Для строчного аргумента этот параметр

определяет число символов, которые будут взяты из строки. Например, могут использоваться такие записи: %10.5d; %.5f; %10s; %-30s. Функция fprintf может использоваться для вывода диагностических ошибок: #include <stdio.h> #include <stdlib.h> int notfound (const char *progname, const char *filename) { fprintf (stderr, “%s: файл %s не найден ”,progname, filename); exit (1); } Для опроса состояния структуры FILE существует ряд простых функций. Одна из них - функция feof: #include <stdio.h> int feof (FILE *stream); Функция feof

является предикатом, возвращающим ненулевое значение, если для потока stream достигнут конец файла. Возврат нулевого значения просто означает, что этого ещё не произошло. Функция main: int main( int argc , char *argv[ ] [, char *envp[ ] ] ); Данное объявление позволяет удобно передавать аргументы командной строки и переменные окружения. Определение аргументов: argc - количество аргументов, которые содержатся в argv[] (всегда больше либо равен 1); argv - в массиве

строки представляют собой параметры из командной строки, введенные пользователем программы. По соглашению, argv [0] – это команда, которой была запущена программа, argv[1] – первый параметр из командной строки и так далее до argv [argc] – элемент, всегда равный NULL; envp - массив envp общее расширение, существующее во многих UNIX® системах. Это массив строк, которые представляют собой переменные окружения. Массив заканчивается значением NULL.

Следующий пример показывает, как использовать argc, argv и envp в функции main: #include <iostream.h>#include <string.h>void main( int argc, char * argv [], char *envp[] ){    int iNumberLines = 0;    /* По умолчанию нет аргументов */    if( argc == 2 && strcmp(argv[1], "/n" ) == 0 )        iNumberLines = 1;    /* Проходим список строк пока не NULL */    for( int i = 0; envp[i] != NULL; ++i )    {        if( iNumberLines )            cout << i << ": " <<