Ввод-вывод стандартного текстового (символьного) потока

Ввод-вывод одиночного символа

ВВОД-ВЫВОД СИМВОЛЬНЫХ ДАННЫХ И СТРОК

getchar() – функция (без параметров) используется для ввода одиночного символа из входного потока. Она возвращает 1 байт информации (символ) в виде значения типа int.

putchar(ch) – функция используется для вывода одиночного символа, то есть помещает в стандартный выходной поток символ ch. Аргументом функции вывода может быть одиночный символ (включая знаки, представляемые управляющими последовательностями), переменная или функция, значением которой является одиночный символ.

Пример 65. Программа считывает из входного потока один символ, а затем выводит его на экран

int main()

{

char ch;

cout<<"Input text";

ch=getchar();

putchar(ch);

system("pause");

return 0;

}

Пример 66. Введите предложение, в конце которого стоит точка, и подсчитайте общее количество символов, отличных от пробела (не считая точки).

int main()

{

char z; //z - вводимый символ

int k; //k - количество значащих символов

printf("Напишите предложение с точкой в конце:\n");

for (k=0; (z=getchar())!='.';) /*выражение z=getchar() заключено в скобки, так как

операция присваивания имеет более низкий ранг, чем операция сравнения*/

if (z!=' ')

k++;

printf("\nКоличество символов=%d", k);

system("pause");

return 0;

}

Результат выполнения программы:

Напишите предложение с точкой в конце:

1 2 3 4 5 6 7 8 9 0. МАМА МЫЛА РАМУ

Количество символов=10

 

gets(s) – функция, которая считывает строку s из стандартного потока до появления символа '\n', сам символ '\n' в строку не заносится.

puts(s) – функция, которая записывает строку в стандартный поток, добавляя в конец строки символ '\n', в случае удачного завершения возвращает значение больше или равное 0 и отрицательное значение ( EOF = -1 ) в случае ошибки.

Пример 67.

int main()

{

char s[20];

cout<<"Input text";

gets(s);

puts(s);

system("pause");

return 0;

}

Результат выполнения программы: при вводе строки "123 456 789" чтение данных осуществляется побайтно до символа '\n', то есть в s занесется строка "123 456 789\0" (управляющая последовательность '\0' на экран не выводится, а является признаком конца строки). При выводе строки функция puts возвращает в конце строки дополнительно один символ '\n', следовательно, будет выведена строка "123 456 789\n" (управляющая последовательность '\n' на экран не выводится, а осуществляет перевод курсора на новую строку).

Пример 68. Вычислите длину введенной строки.

int main()

{

char st[100];

int i=0;

puts("Введите строку:");

gets(st);

while(st[i++]);

printf("Длина введенной строки = %i\n",i-1);

system("pause");

return 0;

}