位置:首页 > > C语言输入输出

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( "
You entered: ");
   putchar( c );

   return 0;
}

当上面的代码被编译和执行,当输入文字,按回车后程序进行,并只读取单个字符和如下显示它等待输入一些文字:

$./a.out
Enter a value : this is codeinn
You entered: x

gets() & puts()函数

char *gets(char *s) 函数读取一行从标准输入到缓冲区,由s直到终止换行符或EOF。

int puts(const char *s) 函数将字符串s和换行符到stdout。

#include <stdio.h>
int main( )
{
   char str[100];

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

   printf( "
You entered: ");
   puts( str );

   return 0;
}

当上面的代码被编译并执行,它等待输入,当输入一个文本,然后按回车,然后程序进行,并读取整行,直到结束,如下显示它的一些文字:

$./a.out
Enter a value : this is codeinn
You entered: This is codeinn

scanf() 和 printf()函数

int scanf(const char *format, ...) 函数从标准输入流stdin中读取输入,并根据规定的格式扫描输入。

int printf(const char *format, ...) 函数将输出到标准输出流stdout和根据提供的格式生成输出。

格式(format)可以是一个简单的常量字符串,但可以指定%s, %d, %c, %f, 等,打印或读取字符串,整数,字符或浮点。可根据要求来使用的许多其它格式选项。对于一个完整的细节,可以参考手册了解这些函数。现在让我们进行一个简单 的例子,了解以上函数的应用:

#include <stdio.h>
int main( )
{
   char str[100];
   int i;

   printf( "Enter a value :");
   scanf("%s %d", str, &i);

   printf( "
You entered: %s %d ", str, i);

   return 0;
}

当上面的代码被编译和执行,当你输入文字,然后按回车,然后程序进行,并读取输入如下显示它等待输入一些文字:

$./a.out
Enter a value : seven 9
You entered: seven 9

这里,应该指出的是scanf()的预期输入提供%s和%d相同的格式,这意味着必须提供类似“string integer”有效的输入,如果提供“string string”或“integer integer“那么它将被假定为错误的输入。其次,在诹读一个字符串scanf()将停止读取,因为它遇到了一个空格,所以“this is test”三个字符串由scanf()函数读取。