🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 20. 输入 & 输出 当我们提到**输入**时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到**输出**时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中。 **标准输出** C 语言把所有的设备都当作文件。所以设备(比如显示器)被处理的方式与文件相同。以下三个文件会在程序执行时自动打开,以便访问键盘和屏幕。 | 标准文件 | 文件指针 | 设备 | | --- | --- | --- | | 标准输入 | stdin | 键盘 | | 标准输出 | stdout | 屏幕 | | 标准错误 | stderr | 您的屏幕 | 文件指针是访问文件的方式,本节将讲解如何从屏幕读取值以及如何把结果输出到屏幕上。 C 语言中的 I/O (输入/输出) 通常使用 printf() 和 scanf() 两个函数。 scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。 例子: ~~~ void main(){ float f; printf("Enter a float number: \n"); // %f 匹配浮点型数据 scanf("%f",&f); printf("Value = %f", f); } ~~~ 输出: ~~~ Enter a float number: 12.3 Value = 12.300000 ~~~ **getchar()&putchar() 函数** **int getchar(void)** 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。 **int putchar(int c)** 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。 ~~~ void main(){ int c; printf( "\nEnter a value :"); //函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。 c = getchar( ); printf( "\nYou entered: "); //读取第一个字符 putchar( c ); } ~~~ 输出: ~~~ Enter a value :abcdef You entered: a ~~~ **gets() & puts() 函数** **char \*gets(char \*s)** 函数从 **stdin** 读取一行到 **s** 所指向的缓冲区,直到一个终止符或 EOF。 **int puts(const char \*s)** 函数把字符串 s 和一个尾随的换行符写入到 **stdout**。 ~~~ void main(){ char str[100]; printf( "\nEnter a value :"); //读取一行 gets( str ); printf( "\nYou entered: "); puts( str ); } ~~~ 输出: ~~~ Enter a value :大家好,才是真的好! You entered: 大家好,才是真的好! ~~~