Float weight;
char name[10];
printf(“\nВаше имя: ”);
scanf(“%s”, name);
printf(“\nВаш возраст: ”);
scanf(“%d”, &age);
printf(“\nВаш рост: ”);
scanf(“%d”, &rost);
printf(“\nВаш вес: ”);
scanf(“%f”, &weight);
После запуска программы на экран будет выведено:
Ваше имя:
и программа будет ожидать ввода строки символов. После того, как будет напечатано имя и пользователь нажмет на клавишу ввода, программа заработает дальше:
Ваше имя: Петр
Ваш возраст: 17
Ваш рост: 178
Ваш вес: 67.5
Значения переменных можно вводить одной строкой, разделяя их пробелами, при этом между спецификациями ввода в формате никаких знаков не ставится:
printf(“\nВаше имя, возраст, рост и вес: ”);
scanf(“%s%d%d%f”, name, &age, &rost, &weight);
При выполнении этой программы появляется сообщение, после которого можно вводить черезпробелы значения соответствующих переменных:
Ваше имя, возраст, рост и вес: Петр 17 178 67.5
При этом переменным name, age, rost, weight будут присвоены введенные значения.
В формат ввода, помимо спецификаций, могут входить и другие символы, причем:
· пробелы, символы табуляции \t и перехода на новую строку \n игнорируются,
· другие символы, если они имеются, должны совпадать с очередными непустыми символами, вводимыми с клавиатуры (символами входного потока), то есть они образуют шаблон, с которым должны совпадать вводимые данные:
scanf(“Возраст=%d, рост=%d, вес=%g, имя:%s”, &age, &rost, &weight, name);
входной поток имеет вид:
Возраст=17, рост=178, вес=67.5, имя:Петр
В этом случае переменные age, rost, weight, nameпримут соответствующие введенные значения.
Если перед спецификатором ввода стоит звездочка * , то поле, относящееся к данному спецификатору в списке ввода, пропускается, и вводимое значение игнорируется. Такая ситуация возникает тогда, когда вводятся значения из файла или с клавиатуры, но одной строкой (при этом они должны разделяться пробелами):
printf(“\nВаше имя, возраст, рост и вес: ”);
scanf(“%s%d%*d%*f”, name, &age, &rost, &weight);
Входной поток имеет вид:
Дата добавления: 2015-10-19; просмотров: 812;