C 控制台输入函数

学习C - C控制台输入

我们可以通过多种方式从键盘读取输入。

以下是从键盘读取输入的函数列表:

getchar() 
gets() 
scanf() 

getchar()和putchar()函数

getchar()函数用于从键盘获取一个字符,putchar()函数用于向Terminal打印一个字符。


  #include <stdio.h> 

  void getchar_putchar(); 

  int main() { 

      getchar_putchar(); 

      return 0; 
  } 

  void getchar_putchar(){ 
      int c; 

      printf ("Type a character: "); 
      c = getchar(); 
      printf ("char: %c\n",c); 
      putchar(c); 
      printf("\n"); 
  } 

上面的代码生成以下结果。


gets()和puts()函数

gets()用于读取文本。如果您输入换行符(ENTER键),将停止阅读。

我们可以使用fgets()来读取长度限制的文本。


  #include <stdio.h> 

  void gets_puts(); 

  int main() { 
      gets_puts(); 
      return 0; 
  } 

  void gets_puts(){ 
      char name[256]; 

      printf ("Your name: "); 
      gets (name); 
      printf ("name: %s\n",name); 
      puts(name); 

      name[0] =  "\0"; // clear 
      printf ("Your name: "); 
      fgets(name,256,stdin); 
      printf ("name: %s\n",name); 
      puts(name); 
  } 

上面的代码生成以下结果。


scanf()函数

另一种方法,我们可以使用scanf()函数来读取文本。


  #include <stdio.h> 

  void scanf_demo(); 
  int main() { 
      scanf_demo(); 
      return 0; 
  } 

  void scanf_demo(){ 
      int num; 
      char c; 
      char city[15]; 

      float dec; 

      printf("Please enter an integer value: "); 
      scanf("%d", &num ); 

      // %c ignores space characters 
      printf("Please enter a character: "); 
      scanf(" %c", &c ); 

      printf("Please enter a city name (no space): "); 
      scanf("%s", city ); 

      printf("Please enter a decimal value:  "); 
      scanf("%f", &dec ); 

      printf("\n-----result-------\n"); 
      printf("number = %d\n", num ); 
      printf("character = %c\n", c ); 
      printf("city name = %s\n", city ); 
      printf("decimal number = %f\n", dec ); 
   } 

上面的代码生成以下结果。

读取程序参数

我们可以从我们的程序中读取参数及其长度。此信息已传递给main()函数。


  #include <stdio.h> 

  int main(int argc, const char* argv[]) { 

      int i; 

      printf("total argument: %d\n",argc-1); 
      if(argc>1){ 
          for(i=1;i<argc;i++){ 
              printf("%s\n",argv[i]); 
          } 
      } 
      return 0; 
  } 

上面的代码生成以下结果。

scanf()

下表列出了使用scanf()读取数据的格式说明符

Action所需的控制字符串
读取short类型的值%hd
读取int类型的值%d
读取long类型的值%ld
读取float类型的值%f 或 %e
读取double类型的值%lf 或 %le

在%ld和%lf格式说明符中,l是小写的。