Учебники

C — вход и выход

Когда мы говорим « Ввод» , это означает ввод некоторых данных в программу. Входные данные могут быть предоставлены в форме файла или из командной строки. Программирование на С предоставляет набор встроенных функций для считывания заданного ввода и подачи его в программу согласно требованию.

Когда мы говорим « Вывод» , это означает отображение некоторых данных на экране, принтере или в любом файле. С-программирование предоставляет набор встроенных функций для вывода данных на экран компьютера, а также для сохранения их в текстовых или двоичных файлах.

Стандартные файлы

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 ().