8.2. Стандартная поддержка реализации ввода данных в командной строке (Пакетный режим).
Иногда бывает полезно, а то и просто необходимо передать данные в программу через командную строку, для этого в языках программирования имеется инструментальная поддержка:
|
Pascal |
Cи |
|
|
int main(int argc, char *argv[],char **env[]) |
Количество параметров командной строки содержится |
ParamCount (стандартная переменная, ее не надо описывать) |
Argc (аргумент функции main) |
Параметры командной строки.
|
ParamStr() (стандартная переменная, ее не надо описывать) |
argv[] (аргумент функции main) |
Задание параметров не выходя из интегрированной среды |
RUN/Arguments. |
RUN/Arguments. |
Примеры чтения данных с командной строки:
А) на языке программирования С:
#include <stdio.h>
int main(int argc, char *argv[],char **env[])
{
int i;
printf("\nколичество аргументов в командной строке = %d",argc);
printf("\nаргументы командной строки:");
for(i=0; i<argc; i++) printf("\n%d. %s",i,argv[i]);
return(i);
}
Б) на языке программирования Pascal:
Var
I: Word;
begin
Writeln('Количество параметров командной строки =', ParamCount);
Writeln('Параметры командной строки:');
for I := 0 to ParamCount do
Writeln(I,'. ',ParamStr(I));
Setbuf();
end.
8.3. Работа с файлами
Обобщенный алгоритм работы файлом:
Открытие файла
Обработка в соответствии с задачей,
Закрытие файла
Таблица стандартных функций работы с файлами в Pascal и C/С++.
|
Pascal |
C |
С++ |
||||
Описание файловой переменной |
F: text; F: file of data; F: file; |
FILE *fp; |
|
||||
Открытие файла: |
Assign(F,’FILE1.DAT’) Reset ( var F [size: word] ) (чтение) Rewrite ( var F [size: word]) (запись) Append (var F: Text) (добавление) |
fp = fopen (filname,”” ). FILE *fp; режим обработки и вид файла(t b), параметры режимы: r- w-a- |
|
||||
Закрытие файла. |
Close(f) |
fclose (fp) |
|
||||
Функции последовательного доступа: чтение из файла, запись в файл. |
|
|
|||||
А) поэлементная обработка |
Read( [var F: Text;] [v1,v2,…,Vn] ) Write([var F:Text;] [V1,V2,…Vn] ) |
Getc(FILE *fp) Puts(int ch, FILE *fp) Возвращает int fgets ( ) fputs( ) и т.д. |
|
||||
Б) поблочная обработка |
BlockRead (file,Buf,N,Result) BlockWrite(file,Buf,N,Result) file - файловая переем. buf – Памяти обмена информации, n - число компонентов, result - число обработанных компонентов |
fread(buf,c,bytes,fp) fwrite(buf,c,bytes,fp) buf - указатель на область памяти, откуда будет проис-ходить обмен информацией c - сколько единиц записи bytes - Длина каждой единицы записи в байтах fp - указатель файла |
|
||||
В) Форматный ввод/вывод |
См. А |
fscanf(FILE *fp,const char * string) fprintf (FILE *fp,const char * string) |
|||||
Функции произвольного доступа |
|
|
|||||
Переустановка файлового указателя. |
seek ( ) Точка отсчета, всегда начало файла. |
fseek (FILE *fp, long, int to) кол/ байт от точки отчета, где to – точка отсчета: SEEK_SET; SEEK_END; SEEK_CUR |
|
||||
Определения отступа указателя от начала файла |
|
Ftell(FILE *fp) |
|
||||
Размер файла. |
Filesize(f) |
fseek (FILE *fp, long, int to) |
|
||||
Определение конца файла |
Eof(f) |
feof(fp) EOF |
|
||||
Отсекание информация от файлового указателя до конца файла |
Truncate(f) |
|
|