C语言程序设计--输入与输出 - 土拨鼠不再挖洞
2019-01-07 02:19:00 Author: www.cnblogs.com(查看原文) 阅读量:6 收藏



所有的输入都是依赖于C语言函数进行的,这个函数是C语言标准库自带的,定义在头文件<stdio.h>里面,所以,要想使用与输入相关的函数,都需要包含这个头文件

#include <stdio.h>

输入函数gets


这是一个获取输入字符串的函数,其定义如下文,作用是从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。

char * gets(char * string){...}

试验gets


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
  char string[100];
  printf(BANNER);
  gets(string);
  puts(string);
  return 0;
}


很简单,但是不推荐,因为gets是不安全的,他可以输入任意长度的字符,可以覆盖超过变量定义支持的长度,缓冲区溢出风险大。

输入函数getchar


这是一个获取输入字符的函数,其定义如下文,作用是从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。

int getchar(void){...}

试验getchar


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
  char string;
  printf(BANNER);
  string = getchar();
  putchar(string);
  return 0;
}


不推荐,因为获取多个字符输入会很麻烦。

输入函数scanf


这是一个获取输入特定数据类型的函数,其定义如下文,函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。

int scanf(const char *format, ...){}

试验scanf


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
  char input_char;
  int input_int;
  char input_string[100];
  float input_float;
  double input_double;
  printf(BANNER);
  scanf("%d", &input_int);
  printf("%d\n", input_int);
  printf(BANNER);
  scanf("%c", &input_char);
  printf("%c\n", input_char);
  printf(BANNER);
  scanf("%s", input_string);//这里只能是数组,因为如果是char *,则不知道大小,会发生段错误,这里使用&input_string 效果一样,但是会有warning,不推荐,
  printf("%s\n",input_string);
  printf(BANNER);
  scanf("%f", &input_float);
  printf("%f\n", input_float);
  printf(BANNER);
  scanf("%lf", &input_double);
  printf("%lf\n", input_double);
  return 0;
}



所有的输出都是依赖于C语言函数进行的,这个函数是C语言标准库自带的,定义在头文件<stdio.h>里面,所以,要想使用与输出相关的函数,都需要包含这个头文件

#include <stdio.h>

输出函数puts


函数把字符串 s 和一个尾随的换行符写入到 stdout。

int puts(const char *s){...}

试验puts


在试验gets中试验过了puts

输出函数putchar


函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。

int putchar(int c){...}

试验putchar


在试验getchar中试验过了putchar

输出函数printf


函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。

int printf(const char *format, ...){...}

试验printf


在试验scanf中试验过了printf

数据格式类型 输入输出的类型标识符
十进制整数 %d
字符型 %c
整数 %i
浮点数 %e, %f, %g
八进制数 %o
字符串 %s
十六进制书 %x
指针 %p
一个等于读取字符数量的整数 %n
一个无符号整数 %u


文章来源: http://www.cnblogs.com/KevinGeorge/p/10231226.html
如有侵权请联系:admin#unsafe.sh