Функции printf() и scanf() используют спецификации формата, указывающие формат и тип данных, которые должны быть напечатаны или введены. Если данные, введенные с помощью функции scanf(), не соответствуют строке формата, то функция может вести себя непредсказуемо. Иногда проще воспользоваться функцией gets(), которая читает вводимые символы (включая пробелы) в объявленную в программе строку символов (максимально возможное количество символов в ней задается в квадратных скобках, но не более 80). Если же должно быть введено число, то можно затем вызвать функцию atoi(), atol() или atof() для преобразования введенной строки соответственно в целое, длинное целое или вещественное число. Эти функции описаны в библиотеке stdlib.h, поэтому для их использования необходимо подключить эту библиотеку. Функция puts() выводит на экран строку символов.
Пример использования функций gets(), puts(), atoi().
Ввести имя и целое число как строки символов с помощью функции gets(), введенную строку с целым числом преобразовать в целое число с помощью функции atoi() и выдать на экран с помощью функции printf().
|
|
#include <stdio.h> // В stdio.h описаны printf, gets
#include <stdlib.h> // В stdlib.h описана atoi
int main()
{
char name[40], // Строка символов для имени, состоящая из 40 символов, в введенной строке должно быть не более 39 символов, так как символ ’\0’ (конец строки) является обязательным
sage[40]; // Строка символов для возраста
int age=0; // Целое число для возраста
puts(“Пожалуйста, введите Ваше имя: “);
gets(name);
printf(“Привет, %s! Cколько Вам лет? ”, name);
gets(sage);
age=atoi(sage); // Преобразование строки символов в целое число
printf(“Возраст %d, конечно, самый замечательный!”,age);
return 0;
}