Когда мы говорим « Ввод» , это означает ввод некоторых данных в программу. Входные данные могут быть предоставлены в форме файла или из командной строки. Программирование на С предоставляет набор встроенных функций для считывания заданного ввода и подачи его в программу согласно требованию.
Когда мы говорим « Вывод» , это означает отображение некоторых данных на экране, принтере или в любом файле. С-программирование предоставляет набор встроенных функций для вывода данных на экран компьютера, а также для сохранения их в текстовых или двоичных файлах.
Стандартные файлы
C программирование рассматривает все устройства как файлы. Таким образом, такие устройства, как дисплей, адресуются так же, как и файлы, и следующие три файла автоматически открываются при запуске программы для обеспечения доступа к клавиатуре и экрану.
Стандартный файл | Файловый указатель | устройство |
---|---|---|
Стандартный ввод | STDIN | клавиатура |
Стандартный вывод | стандартный вывод | экран |
Стандартная ошибка | STDERR | Ваш экран |
Файловые указатели являются средством доступа к файлу для чтения и записи. В этом разделе объясняется, как считывать значения с экрана и как печатать результат на экране.
Функции getchar () и putchar ()
Функция int getchar (void) считывает следующий доступный символ с экрана и возвращает его как целое число. Эта функция читает только один символ за раз. Вы можете использовать этот метод в цикле, если вы хотите прочитать более одного символа с экрана.
Функция int putchar (int c) помещает переданный символ на экран и возвращает тот же символ. Эта функция помещает только один символ за раз. Вы можете использовать этот метод в цикле, если вы хотите отобразить более одного символа на экране. Проверьте следующий пример —
#include <stdio.h> int main( ) { int c; printf( "Enter a value :"); c = getchar( ); printf( "\nYou entered: "); putchar( c ); return 0; }
Когда приведенный выше код скомпилирован и выполнен, он ждет, когда вы введете какой-то текст. Когда вы вводите текст и нажимаете ввод, программа продолжает работу и читает только один символ и отображает его следующим образом:
$./a.out Enter a value : this is test You entered: t
Функции gets () и put ()
Функция char * gets (char * s) считывает строку из stdin в буфер, на который указывает s, до завершающей строки или EOF (End of File).
Функция int put (const char * s) записывает завершающие символы новой строки ‘s’ и ‘a’ в стандартный вывод .
ПРИМЕЧАНИЕ. Несмотря на то, что он не рекомендуется использовать функцию gets (), вместо использования gets вы хотите использовать fgets () .
#include <stdio.h> int main( ) { char str[100]; printf( "Enter a value :"); gets( str ); printf( "\nYou entered: "); puts( str ); return 0; }
Когда приведенный выше код скомпилирован и выполнен, он ждет, когда вы введете какой-то текст. Когда вы вводите текст и нажимаете ввод, программа продолжает и читает всю строку до конца и отображает ее следующим образом:
$./a.out Enter a value : this is test You entered: this is test
Функции scanf () и printf ()
Функция int scanf (const char * format, …) считывает ввод из стандартного потока ввода stdin и сканирует этот ввод в соответствии с предоставленным форматом .
Функция int printf (const char * format, …) записывает вывод в стандартный поток вывода stdout и производит вывод в соответствии с предоставленным форматом.
Формат может быть простой константной строкой, но вы можете указать% s,% d,% c,% f и т. Д. Для печати или чтения строк, целых чисел, символов или с плавающей точкой соответственно. Есть много других доступных вариантов форматирования, которые можно использовать в зависимости от требований. Давайте теперь перейдем к простому примеру, чтобы лучше понять концепции —
#include <stdio.h> int main( ) { char str[100]; int i; printf( "Enter a value :"); scanf("%s %d", str, &i); printf( "\nYou entered: %s %d ", str, i); return 0; }
Когда приведенный выше код скомпилирован и выполнен, он ждет, когда вы введете какой-то текст. Когда вы вводите текст и нажимаете ввод, программа переходит и читает ввод и отображает его следующим образом:
$./a.out Enter a value : seven 7 You entered: seven 7
Здесь следует отметить, что scanf () ожидает ввод в том же формате, что вы указали% s и% d, что означает, что вы должны предоставить допустимые вводы, такие как «строковое целое число». Если вы укажете «string string» или «integer integer», то это будет считаться неправильным вводом. Во-вторых, при чтении строки scanf () прекращает чтение, как только встречает пробел, поэтому «это тест» — три строки для scanf ().