
- •1 Понятие алгоритма формы представления алгоритмов
- •2 Линейные и разветвляющиеся алгоритмы.
- •3 Циклические алгоритмы
- •4 Понятие прикладного и системного программирования
- •5 Структура программ на языке си
- •6 Арифметико-логические операции над переменными
- •Арифметические операции
- •Операции увеличения и уменьшения
- •Операции "увеличить на", "домножить на" и т.П.
- •Логические операции
- •Операции сравнения
- •Побитовые логические операции
- •7 Два вида оператора выбора Оператор if
- •8 Понятие цикла
- •1.4.6. Оператор break
- •1.4.7. Оператор for
- •1.4.8. Оператор while
- •1.4.9. Оператор do while
- •1.4.10. Оператор continue
- •1.4.11. Оператор return
- •9 Массив
- •12 Указатели
- •13 Адресная арифметика
- •14 Операции над указателями
- •15 Массивы указателей
- •16 Указатели на функции Указатели на функции
- •17 Структуры
- •18 Доступ к элементам структуры
- •19 Структуры как аргументы
- •6.2. Структуры и функции
- •20 Динамические структуры на массиве
- •21 Динамическое распределение памяти Функции динамического распределения
- •Динамическое выделение памяти для массивов
- •23 Организация доступа к файлам
- •Закрытие потока при помощи fclose
- •Чтение из потока при помощи fgetc
- •«Ловушка» eof
- •При помощи fgets
- •24 Форматированный ввод –вывод Функции форматированного ввода и вывода в си
- •Спецификатор типа
- •Спецификатор типа
- •25 Верификация тестирование отладка программ
- •Введение
- •26 Причины и последствия появления ошибок
- •27 Идея модульного программирования
- •28 Технология проектирования сверху-вниз
- •29 Итерация рекурсия
- •30 Методы сортировки
- •34 Способы защиты информации
При помощи fgets
Функция fgets применяется для чтения строки из потока. Считывание происходит до тех пор пока не будет достигнут конец строки (hex:0D0A, эквивалентны в листингах \n) или длина строки, в которую происходит считывание. Предположим, у нас есть файл some_file.txt с текстом
палиндромы
А в Енисее - синева.
А лама мала.
А лис, он умен - крыса сыр к нему носила. (И. Бабицкий)
#include <stdio.h>
#include <string.h>
int main (int argc, char* argv[]) /* argc хранит количество параметров, а argv[] указатели на эти параметры.
Например, если мы запустим исполняемый файл "fgets_example param1 param2", то argc будет равно 3, а argv[] = {"fgets_example", "param1", "param2"}*/
{
FILE *file;
char *fname = "some_file.txt";
char result_sting[20]; //Строка в 20 символов
file = fopen(fname,"r");
if(file == 0)
{
printf("не могу открыть файл '%s'",fname);
return 0;
}
int i=0;
char *real_tail;
while(fgets(result_sting,sizeof(result_sting),file))
{
real_tail="";
printf("Строка %d:Длина строки - %d:",i++,strlen(result_sting));
if(result_sting[strlen(result_sting)-1] == '\n')//проверяем является ли последний элемент в строке символом ее окончания
{
real_tail="\\n";
result_sting[strlen(result_sting)-1]='\0';
};// эта часть кода добавлена лишь для отображения символа конца строки в консоль без перевода на новую строку
printf("%s%s\n",result_sting,real_tail);
}
fclose(file);
return 0;
}
24 Форматированный ввод –вывод Функции форматированного ввода и вывода в си
Функции форматированного ввода и вывода описаны в библиотеке stdio.h: scanf – функция форматированного ввода; printf – функция форматированного вывода Функция scanf имеет следующий заголовок: int scanf(const char * restrict format [,addresses,…]); Пример ввода двух переменных переменные целого типа и переменной вещественного типа:
int a,b; double x; … scanf("%d %d %lf”,&a,&b,&x);
Спецификатор типа
Сочетание %d или любое другое называется спецификатором типа. В общем случае он имеет следующий формат: % [*] [WIDTH] [hh|h|l|ll|L] символ_типа * – указывает запрещенные для ввода символы. WIDTH – задает максимальную длину поля ввода. Преобразователи типа: hh - преобразование целочисленных типов к типам char или unsigned char. h - преобразование целочисленных типов к типам short int или unsigned short int. l - преобразование к типу long int всех целочисленных типов и к типу double всех вещественных типов. ll - преобразование целочисленных типов к типам long long int или unsigned long long int. L - преобразование к типу long double всех вещественных типов.
Спецификаторы типа: d, i – знаковое целое число в десятичной системе o – знаковое целое число в восьмеричной системе X, x – знаковое целое число в шестнадцатеричной системе u – незнаковое целое число в десятичной системе исчисления f, e и g – вещественное число в десятичной системе исчисления a - вещественное число в шестнадцатеричной системе исчисления c – символ s – строка в СИ p – указатель % - ввод символа ‘%’
Функция printf имеет следующий заголовок:
int printf(const char * restrict format [,variables,…]); Пример вывода двух переменных целого типа и переменной вещественного типа:
int a,b; double x; … printf("%d %d %5.2lf”,a,b,x);