C语言学习笔记about输入输出
有关C语言输入输出的概念
C语言本身不提供输入输出语句,是由C标准函数库的函数来实现的 printf 和scanf 不是C语言的关键字,只是函数库的名字。也就是说你可以另外编写一个输入输出函数来实现输入输出功能,采用其他名字作为函数名
这样做法的好处:使得C语言编译系统简单而精练,因为在语句翻译成二进制指令是在编译阶段完成的,没有输入输出就能避免在编译阶段处理与硬件相关的问题,这样编译系统简化,通用性强,可移植性好。
putchar (输出字符) getchar (输入字符) printf(格式输出)scanf(格式输入)
puts(输出字符串)gets(输入字符串)
在使用系统函数库时,要在文件的开头 用预处理指令#include 把有关的头文件导入
如 #include”stdio.h” 这个格式也是正确的。和尖括号< >的区别
#include”stdio.h” 系统会先从用户存放源程序的子目录中寻找要包含的文件,如果找不到再到标准方式查找。使用系统提供的变准函数库一定要用标准尖括号 这样会提高使用效率 如果想用自己定义的头文件则使用如下格式 #include”C:\temp\file1.h”
printf 函数的一般格式
printf( 格式控制,输出表列)格式控制包含:1格式声明 %和格式字符组成如%d%lu (如果想输出%则用两个%%表示要打印一个取余的符号)
%md m代表域宽 m 为正代表 如果输出的数值位数够的话在前面补空格(”%5d\n,12”)
结果为 空格空格空格12 如果m为负则是在12后面补三个空格。
%c 可以输出一个在0~127范围的整数对应的字符,如果超过则按照最后一个字节的信息输出比如 int a=377;printf(“%c”,a)输出的是121 字符y。大家可以验证下。
%s 用来输出一个字符串。
%f用来输出实数(单、双精度,长双精度)以小数形式输出,如果不指定长度,一般默认实数整数全部输出,小数部分输出6位。这6位是保证精度的如果超出部分系统会丢失精度随机输出。
% m . n f 如% 7.2f 就是输出的数据占7列其中2位小数,如果n值为0 不会输出小数连小数点也不会输出。(m为负值时,当长度不超过m,数据向左靠齐,右端补空格)
如果要输出双精度变量的15位小数 可参照%20.15f\n,1.0/3 来输出 注意0前面有三个空格
0.333333333333333
double 只能保证15位有效数字的精确度,即使指定小数位为50,也不能保证输出50位都是有效数字。
不要以为计算机输出的所有数字都是绝对精确有效的。float 型数据的存储单元只能保证6位有效数字。
补充 输出中/t代表 一个table的空格。
%u 无符号数
可打印的转译字符 \n, \t, \b, \r, \f, \377 .
空字符null 以 \0表示
警告\a
\b退格
\r 回车
\377 打印出-1
scanf函数输入
scanf(格式控制,地址表列)
格式控制和printf函数相同,地址表列 可以是变量的地址或者字符串的首地址。
注意 s输入时以非空白字符开始字符串以串结束标志\0作为最后一个字符。
*表示本输入项在读入后不赋给相应的变量。%*d跳过一个整数 %*c跳过一个字符。
在输入数值数据时 如输入 空格 回车 tab 或遇非法字符(不属于数值的字符),认为该数据结束了。
|