C - 输入和输出

当我们说输入时,它意味着将一些数据提供给程序.输入可以以文件的形式或从命令行给出. C编程提供了一组内置函数来读取给定的输入并根据需要将其提供给程序.

当我们说输出时,它意味着在屏幕,打印机或任何文件中显示一些数据. C编程提供了一组内置函数,用于在计算机屏幕上输出数据,并将其保存在文本或二进制文件中.

标准文件

C编程将所有设备视为文件.因此,显示器等设备的处理方式与文件相同,当程序执行时,会自动打开以下三个文件,以提供对键盘和屏幕的访问.

标准文件文件指针设备
标准输入stdin键盘
标准输出stdout屏幕
标准错误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;
}

编译并执行上述代码时,它会等待您输入一些文本.当您输入文本并按Enter键时,程序继续执行并只读取一个字符,并显示如下 :

$./a.outEnter a value : this is testYou entered: t

gets()和puts()函数

char * gets(char * s)函数从 stdin

int puts(const char * s)函数将字符串's'和'a'尾随换行符写入标准输出.

注意:虽然不推荐使用gets()函数,但是你想使用 fgets() .

#include <stdio.h>
int main( ) {

   char str[100];

   printf( "Enter a value :");
   gets( str );

   printf( "\nYou entered: ");
   puts( str );

   return 0;
}

编译并执行上述代码时,它会等待您输入一些文本.当您输入文本并按Enter键时,程序继续并读取完整的行直到结束,并显示如下 :

$./a.outEnter a value : this is testYou 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;
}

编译并执行上述代码时,它会等待您输入一些文本.当您输入文本并按Enter键时,程序继续并读取输入并显示如下 :

$./a.outEnter a value : seven 7You entered: seven 7

这里,应该注意scanf()要求输入格式与您提供的%s和%d相同,这意味着您必须提供有效的输入,如"字符串整数".如果提供"字符串字符串"或"整数整数",则将其视为错误输入.其次,在读取字符串时,scanf()会在遇到空格时立即停止读取,因此"这是测试"是scanf()的三个字符串.