C - Вход и выход
Когда мы говорим Ввод , это означает передать некоторые данные в программу. Входные данные могут быть предоставлены в виде файла или из командной строки. Программирование на языке C предоставляет набор встроенных функций для чтения введенных данных и передачи их в программу в соответствии с требованиями.
Когда мы говорим Вывод , это означает отображение некоторых данных на экране, принтере или в любом файле. Программирование на C предоставляет набор встроенных функций для вывода данных на экран компьютера, а также для сохранения их в текстовых или двоичных файлах.
Стандартные файлы
Программирование на C рассматривает все устройства как файлы. Таким образом, такие устройства, как дисплей, адресуются так же, как файлы, и следующие три файла автоматически открываются при выполнении программы, чтобы обеспечить доступ к клавиатуре и экрану.
Стандартный файл | Указатель файла | Устройство |
---|---|---|
Стандартный ввод | стандартный ввод | Клавиатура |
Стандартный вывод | стандартный вывод | Экран |
Стандартная ошибка | 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() и puts()
char *gets(char *s) функция читает строку из stdin в буфер, на который указывает s до завершающей новой строки или EOF (конец файла).
int puts(const char *s) функция записывает строку 's' и 'a' после новой строки в stdout .
ПРИМЕЧАНИЕ: Хотя использование функции 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, что означает, что вы должны предоставить допустимые входные данные, такие как «целочисленная строка». Если вы укажете «строковая строка» или «целое целое число», то это будет считаться неправильным вводом. Во-вторых, при чтении строки scanf() прекращает чтение, как только встречает пробел, поэтому «это тест» — это три строки для scanf().
Язык C