Билет 18. Аргументы функции main
main(int ARGC,char **ARGV)
{
while (ARGC--)
printf("\n %s ",ARGV[ARGC]);
}
Допустим, программа называется
obrab_1.exe
Тогда, если ее вызвать из подкаталога TC на диске C следующим образом:
C:\TC>obrab_1 one two
то программа выдаст на экран такую информацию:
two
one
C:\TC\obrab_1.exe
В языке C заданы два встроенных аргумента функции main: argc и argv.
Выглядит это так:
int main(int argc, char *argv[]) {...}
Аргумент argc типа integer содержит в себе количество аргументов командной строки.
Аргумент argv типа char - указатель на массив строк. Каждый элемент массива указывает на аргументы командной строки. Один параметр отделяется от другого пробелами.
argv[0] - полное имя запущенной программы
argv[1] - первая строка записаная после имени программы
argv[2] - вторая строка записаная после имени программы
argv[argc-1] - последняя строка записаная после имени программы
argv[argc] – NULL
Билет 19. Файлы, их описание, открытие\закрытие текстового файла.
Пример открытия файла
File *in;
if((in=fopen("myfile.dat","r"))==NULL)
{ printf("\n Файл myfile.dat не открыт."); exit(1);}
Закрытие файла осуществляет функция
fclose(указатель_файла);
Работа со стандартным файлом:
scanf (управляющая строка, данные);
printf (управляющая строка,данные);
gets (имя_строки);
puts(строка или имя строки);
getchar();
getch();
getche();
putchar(символ или имя_символа)
Работа с произвольным файлом:
fscanf(указатель_файла,управляющая_строка, данные);
fprintf(указатель файла,управляющая строка, данные);
fgets (имя_строки,колич.симв.,указ._файла);
fputs (строка или имя_строки,указ._файла);
getc (указатель_файла) ;
putc(символ или имя_символа,указ._файла);
Билет 20. Файл, их описание, открытие\закрытие двоичного файла.
В отличие от текстовых файлов доступ к элементам бинарных файлов выполняется в произвольном порядке, а не последовательно. Поэтому бинарные файлы называют файлами произвольного доступа. Приложение, в котором предполагается использовать файлы произвольного доступа, должно их создавать. Все записи в таком файле должны быть одинаковой фиксированной длины. Данные могут быть вставлены в файл прямого доступа без разрушения других данных, изменены или удалены без перезаписи всего файла. Для получения доступа к бинарному файлу(потоку) в MVS нужно: Создать поток соответствующего типа: ifstream- для ввода из файла ; ofstream- для вывода в файл; fstream - для обмена с файлом в двух направлениях. Связать его с файлом данных и открыть (open) для работы в определенном режиме, с обязательным указанием двоичного режима ios::binary(по умолчанию потоки открываются в текстовом режиме):
Для закрытия потока используется функция close().
Двоичные файлы. Бесформатный ввод-вывод:
fread(куда, размер, сколько, указатель_файла);
– для чтения из файла,
fwrite (откуда, размер, сколько,указатель_файла);
Для записи в файл.
При этом, в fopen
режим дополняется опцией ”b”
(двоичный файл), например,
"wb+"
(по умолчанию действует ”t”
— текстовый файл).
Двоичные файлы. Бесформатный ввод-вывод:
ПРИМЕР:
#include<stdio.h>
main( )
{
FILE *in;
int i,a[10]={1,2,3,4,5,6,7,8,9,10},b[10];
in=fopen("D:\\ISTAS\\myfile.dat","wb+");
fwrite(a,2,10,in);
rewind(in);
fread (b,2,10,in); puts ("\nМассивB\n");
for (i=0;i<10;i++)
printf (" %d",b[i]);
}
Указание позиции при работе с файлом:
ftell (указатель файла);
fseek( указатель_файла, величина_сдвига, точка_отсчета);
• SEEK_SET – начало файла,
• SEEK_CUR – текущая позиция,
• SEEK_END – конец файла.
Б) Чтение из двоичного файла
FILE *out;
...
in=fopen("VkladBin.dat","rb");
fread(&NC,sizeof(int),1,in);
clients=(struct z*)malloc(NC*sizeof(struct z));
fread(clients,sizeof(struct z),NC,in);
fclose(in);