Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFO_2.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
357 Кб
Скачать
☆

46. Операторы gets, putchar, getchar

Функция gets() читает строку символов, введенных с клавиатуры и помещает их по адресу, указанному в аргументе. Можно набирать символы, пока не будет нажат ввод. Символ, соответствующий клавише ввод - возврат каретки, - не станет частью строки. Вместо этого в конце строки появится нулевой символ, и gets() закончит работу. Фактически невозможно использовать gets() для получения возврата каретки (можно использовать getchar() и ее варианты). Если при вводе допущены ошибки, то они могут быть исправлены нажатием на клавишу BACKSPASE перед нажатием ввода. Функция gets() имеет прототип: char *gets(char *str); где str - это массив символов. Функция gets() возвращает указатель на str. Следующая программа осуществляет чтение строки в массив str и выводит ее длину: #include <stdio.h> #include <string.h> int main(void) { char str[80]; gets(str); printf("Length is %d", strlen(str)); return 0; }

Функция getchar

#include <stdio.h>

int getchar(void);

Функция getchar() возвращает из стандартного потока stdin следующий символ. При чтении символа предполагается, что символ имеет тип unsigned char, который потом преобразуется в целый.

При достижении конца файла, как и при обнаружении ошибки, функция getchar() возвращает значение EOF.

Функция getchar() чаще всего реализована как макрос.

Пример

Данная программа считывает в массив s символы из стандартного входного потока stdin, пока пользователь не нажмет клавишу ENTER. Затем введенная строка выводится на экран.

#include <stdio.h>

int main(void)

{

char s[256], *p;

p = s;

while((*p++ = getchar())!= '\n') ;

*p = '\0'; /* добавляем символ конца строки */

printf(s);

return 0;

}

Описание

Функция putchar записывает символ в текущей позиции в стандартный поток вывода (stdout) и перемещает внутренний указатель положения файла в следующую позицию. Это эквивалентно putc (charcter, stdout).

Параметры:

  • character Символ для записи.Символ передается как значение типа int.

Возвращаемое значение

Если ошибок не произошло при вызове функции, то возвращается целочисленное значение символа, который записывался в поток stdout. При возникновении ошибки, возвращается EOF, а индикатор ошибки устанавливается.

Пример: исходный код программы

1

2

3

4

5

6

7

8

9

//приме риспользования функции putchar для печати алфавита

#include <cstdio>

 

int main ()

{

  for (char c = 'A' ; c <= 'Z' ; c++)

      putchar(c);   // вывод на экран символ внглийского алфавита

  return 0;

}

49. While

Оператор цикла while или цикл while - цикл, повторяющий одно и то же действие, пока условие продолжения цикла while остаётся истинным.

1

2

3

4

5

6

// форма записи цикла while

while (/*условие продолжения цикла while*/)

{

/*блок операторов*/;

/*управление условием*/;

}

Условие продолжения цикла должно быть истинно true, как только условие стало ложным, выполняется выход из цикла. Также как и в условных операторах выбора, фигурные скобочки могут опускаться в том случае, если тело цикла — это один оператор. Но как правило в цикле выполняется несколько операторов, так как кроме выполнения полезного действия необходимо делать условие цикла while ложным, иначе цикл будет бесконечным, а это, в свою очередь, приведет к зависанию программы.

50. for

Цикл — многократное прохождение по одному и тому же коду программы. Циклы необходимы программисту для многократного выполнения одного и того же кода, пока истинно какое-то условие. Если условие всегда истинно, то такой цикл называется бесконечным, у такого цикла нет точки выхода.

В языке программирования С++ существуют такие циклы:

  • цикл for

  • цикл while

  • цикл do  while

Тело цикла будет выполняться до тех пор, пока условие будет истинно(т. е. true).

1

2

3

4

5

6

// форма записи оператора цикла for:

 

for (/*выражение1*/; /*выражение2*/; /*выражение3*/ )

{

/*один оператор или блок операторов*/;

}

Если в теле цикла for должен выполнится один оператор, тогда фигурные скобки можно опустить:

1

2

for (/*выражение1*/; /*выражение2*/; /*выражение3*/)

/*один оператор*/;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]