Лабораторная работа: Организация ввода-вывода
printf("\nHello, World!");
printf("\nЗаголовки столбцов :\n\"Январь\"\t\t\" Другие\
месяцы ...\"");
printf("\nОшибка !\007"); //звуковой сигнал
int i= 1828;
printf("\nПолный адрес переменной i = %Fp, смещение =\
%Np", &i, &i);
printf("\nТолстой родился в %d году, а число е = % . 9 f " , i, М_Е);
printf("\nВозможна ошибка %s: аргументов меньше, чем\
спецификаторов");
// разные системы счисления 33 = 0x21 = 041
printf("\n%i = %#х = %#0о", i, i, i);
char j=5, str[80] = "";
//строка с 5 повторяющимися символами –
while(j--)
strcat(str,"-");
//memset(str, '-', 5); // другой вариант
printf("\n%s", str);
int n=printf("\nДанный вызов printf вывел");
printf("%i символов, учитывая перевод строки (1 символ)", n);
if(!getch())
getch(); //задержка экрана
}
3. Функция scanf
Предназначена для ввода переменного числа аргументов из стандартного потока ввода stdin. Перед вводом аргументы подвергаются форматированию. Возвращает число реально введенных аргументов (не символов!). Помещает вводимые данные по адресам, содержащимся в аргументах, т.е. аргументы передаются этой функции по адресу. Функция прекращает свою работу при первом неудачном вводе. Если не все данные введены успешно, то необходимо очистить буфер входного потока с помощью функции
fflush(stdin);
В противном случае при следующем вызове scanf будут вводиться не введенные ранее данные. Желательно очищать буфер и перед первым вызовом scanf. Синтаксис: int scanf(const char *format [, ...]);
Первый и обязательный аргумент format представляет собой строковую константу и содержит только спецификаторы ввода и их разделители (см. таблицы для printf). Текст использовать нельзя. Уточнения к таблицам спецификаторов:
1. Для ввода в переменные типа double нужно использовать спецификатор %1f, а для ввода long double - %Lf.
2. В качестве разделителей спецификаторов можно использовать пробел или любой символ пунктуации. Выбранный разделитель должен разделять и вводимые данные. В противном случае будет введено только первое данное.