输入/输出

我们在编程时讨论的输入是指程序从外界获取的值,因此在C语言中,当我们说从外部获取的输入其实是指将键盘上输入的值转移到我们的程序中

输出的概念相同,当我们说输出时,这意味着我们的程序将在某些屏幕上显示一些结果。

在C语言编程中,所有内容都是文件,无论是文本文件还是外围设备,如屏幕,键盘等。在C语言中,标准库中定义的指针指向的是控制台设备。

以下是关于控制台输入、输出和错误设备的指针。

标准文件 文件指针 控制台设备
标准输入 stdin 键盘
标准输出 stdout 屏幕
标准错误 stderr 屏幕

控制台输入和输出函数

getchar()

int getchar(void);
获取字符函数,此函数从stdin指针(键盘)中获取下一个可用字符,并返回一个整数。

putchar()

int putchar(int);
输出字符函数,此函数将一个整数作为要打印的输入,并将该值提供给stdout指针用于在屏幕上打印。例如:

#include<stdio.h>

int main( )
{
   int ch_var;

   printf( "Enter a value: \n");
   ch_var = getchar( );

   printf( "Your entered value is: ");
   putchar( ch_var );

   return 0;
}

当程序执行后,从键盘输入一个字符's',程序执行结果如下:
putchar
备注:可以在循环中使用这些功能进行多字符输入。

gets()

char * gets(char *string);
获取字符串函数,此函数将来自控制台stdin指针的输入放置到string buffer中,直到遇到换行符或EOF为止。

puts()

int puts(char *string);
输出字符串函数,此函数将要打印的字符串string作为参数输入,并传递到stdout指针用于屏幕上打印,返回值为屏幕上打印的字符数。例如:

#include<stdio.h>

int main( )
{

   char string[100];

   printf( "Enter a value: \n");
   gets(string);

   printf( "Your entered string is: ");
   puts( string);

   return 0;
}

当程序执行后,从键盘输入字符串"abcdefghijklmn",程序执行结果如下:
puts

scanf()

int scanf(const char *format,…);
格式输入函数,此函数根据格式限定符的格,从标准stdin指针中读取输入,并返回输入字符数量。

输入数据类型 数据格式限定符
字符 %c
整型 %d,%i,%u,%lu
字符串 %s
小数/浮点型 %f,%lf,%Lf

例如:

/* 声明变量:i_var1,i_var 为整型变量用于存储输入的整数 */
/* 声明f_var2为浮点型存储输入的小数 */
 
/*1. 获取从键盘中输入的单个整数 */
  scanf("%d",&i_var1); 
 
/*2. 获取从键盘中输入的两个整数 */
     scanf("%d%d",&i_var1,&i_var2); 
 
/*3. 从键盘中获取一个整数和一个小数 */              
     scanf("%d%f",&i_var1,&f_var2);

printf()

int printf(const char *format, …);
格式输出函数,printf()使用所需的格式限定符将写入标准输出流stdout指针的字符输出到屏幕上。

例如:

/* 声明并初始化变量:i_var1,i_var 为整型变量用于存储输出的整数 */
/* 声明并初始化变量:f_var2为浮点型存储输出的小数 */
 
/*1. 输出i_var1到屏幕上 */
     printf("%d",i_var1); 
 
/*2. 输出i_var1,i_var2 到屏幕上 */
     printf("%d\n%d",i_var1,i_var2);       /* \n 用于换行*/ 
 
/*3. 输出i_var1,f_var2 到屏幕上 */
     printf("%d\n%f",i_var1,f_var2);

输入输出例程

#include<stdio.h>
#include<limits.h>

int main( )
{
   unsigned long int ui_var1;
   unsigned long int ui_var2;
   unsigned long int ui_result;

  printf("You can Input value in between %lu to %lu \n",
         (unsigned long int)0,
         (unsigned long int)ULONG_MAX); /*强制转换避免 warning*/

   printf( "Enter first Integer input: ");
   scanf("%lu",&ui_var1);

   printf( "\nEnter Second Integer input: ");
   scanf("%lu",&ui_var2);

   ui_result=ui_var1+ui_var2;

   printf( "\nYour addition is : %lu",ui_result);

   return 0;
}

程序的任务是从键盘输入两个无符号长整型的值,然后将两个值相加,并将相加的结果输出到屏幕上。结果如下:
print

下一节