Основные функции файловой системы Си

Имя функции Назначение
fopen() Открывает файл
fclose() Закрывает файл
putc() Записывает символ в файл
fputc() Записывает символ в файл (для совместимости)
getc() Читает символ из файла
fgetc() Читает символ из файла (для совместимости)
fgets() Читает строку из файла
fputs() Записывает строку в файл
fseek() Устанавливает файловый указатель на определенный байт файла
ftell() Возвращает текущее значение указателя
fprintf() Вывод в файл
fscanf() Ввод из файла
feof() Возвращает значение истина, если достигнут конец файла
ferror() Возвращает значение истина, если произошла ошибка
rewind() Устанавливает указатель текущей позиции в начало файла
remove() Стирает файл
fflush() Дозапись потока в файл

Изменение программы: // стр. 49

#include<stdio.h>

int (*fun)(int,int), sum(int,int), razn(int,int);

void main()

{

int a=10, b=20, c;

c=sum(a,b);

printf("c=%d\tsum=%d\trazn=%d\n", c, sum(a,b), razn(a,b));

fun=sum;

printf("*fun=%d\n",(*fun)(a,b));

fun=razn;

printf("*fun=%d\n",(*fun)(a,b));

}

int sum(int x,int y)

{

return (x+y);

}

int razn(int x,int y)

{

return (y-x);

}

// Программа " Шифр Цезаря "

Открытый текст – сообщение, которое подлежит шифрованию.

Результат применения к открытому тексту алгоритма шифрования называют шифротекстом.

Шифр Цезаря – каждая буква открытого текста заменяется третьей после нее буквой в алфавите, который считается записанным по кругу.

Пусть x – номер буквы открытого текста в алфавите, с – элемент шифротекста.

Шифрование – x ->c=x+3 (mod 67)

Дешифрование производится обратным сдвигом: x=c-3 (mod 67), что эквивалентно x=c+(33-3) (mod 67)

#include <stdio.h>

#include<string.h>

#define K 3

#define M 67

#include <windows.h>

void Shifr(char*,char*,char*,int);

void DeShifr(char*,char*,char*,int);

void main()

{

int n,n1;

char cAr[]="абвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

char cStr1[]="Введите максимальный размер строки:\n";

CharToOem(cStr1,cStr1);

printf("%s",cStr1);

scanf("%d",&n);

char *pStr,*pStr1,*pStr2;

pStr=new char[n];

char cStr2[]="Введите строку \"открытого текста\":\n";

CharToOem(cStr2,cStr2);

printf("%s",cStr2);

getchar();

gets(pStr);

n1=strlen(pStr);

pStr1=new char[n1];

pStr2=new char[n1];

CharToOem(cAr,cAr);

int ch;

char cStr3[]="1. Произвести шифрование\n";

char cStr4[]="2. Произвести дешифрование\n";

char cStr5[]="3. Выход ";

char cStr6[]="\n МЕНЮ \n\n";

char cStr7[]="Выбор (1,2,3):";

CharToOem(cStr3,cStr3);

CharToOem(cStr4,cStr4);

CharToOem(cStr5,cStr5);

CharToOem(cStr6,cStr6);

CharToOem(cStr7,cStr7);

label:

printf("%s",cStr6);

printf("%s",cStr3);

printf("%s",cStr4);

printf("%s\n\n",cStr5);

printf("%s ",cStr7);

scanf("%d",&ch);

getchar();

switch (ch)

{

case 1: Shifr(pStr,pStr1,cAr,n1);

break;

case 2: DeShifr(pStr1,pStr2,cAr,n1);

break;

case 3: exit(0);

default: printf("\n\nInput 1,2,3\n");

}

goto label;

}

void Shifr(char* pStr,char* pStr1,char* cAr,int n1)

{

for(int i=0;i<n1;i++)

for(int j=0;j<M;j++)

{

if(pStr[i]==cAr[j])

pStr1[i]=cAr[(j+K)%M];

}

for(i=0;i<n1;i++)

printf("%c",pStr1[i]);

printf("\n");

}

void DeShifr(char* pStr1,char* pStr2,char* cAr,int n1)

{

for(int i=0;i<n1;i++)

for(int j=0;j<M;j++)

{

if(pStr1[i]==cAr[j])

pStr2[i]=cAr[(j+(M-K))%M];

}

for(i=0;i<n1;i++)

printf("%c",pStr2[i]);

printf("\n");

}

Приложение: /* Стандарт языка С99 (изменения, внесенные в язык Си, по сравнению с С89) */


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: