c语言输入输出:C语言入门之输入输出(1)



数据输出语句

   本小节介绍是向标准输出设备显示器输出数据语句在C语言中所有数据输入/输出都是由库完成 因此都是语句本小节先介绍prf和putcharprfprf称为格式输出其关键字最末个字母f即为“格式”(format)的意其功能是按用户指定格式 把指定数据显示到显示器屏幕上在前面例题中我们已多次使用过这个

   、prf般形式

   prf个标准库原型在头文件“stdio.h”中但作为个特例不要求在使用 prf 的前必须包含stdio.h文件prf般形式为: prf(“格式控制串”输出表列)其中格式控制串用于指定输出格式 格式控制串可由格式串和非格式串两种组成格式串是以%开头在%后面跟有各种格式以介绍说明输出数据类型、形式、长度、小数位数等如“%d”表示按十进制整型输出“%ld”表示按十进制长整型输出“%c”表示按型输出等后面将专门给予讨论

   非格式串在输出时原样照印在显示中起提示作用 输出表列中给出了各个输出项 要求格式串和各输出项在数量和类型上应该对应

void
{
a=88,b=89;
prf(\"%d %d\\n\",a,b);
prf(\"%d,%d\\n\",a,b);
prf(\"%c,%c\\n\",a,b);
prf(\"a=%d,b=%d\",a,b);
}
a<--8,b<--89

prf(\"%d %d\\n\",a,b);
prf(\"%d,%d\\n\",a,b);
prf(\"%c,%c\\n\",a,b);
prf(\"a=%d,b=%d\",a,b);

   本例中 4次输出了a,b但由于格式控制串区别输出结果也不相同第 4行输出语句格式控制串中两格式串%d 的间加了个空格(非格式)所以输出a,b值的间有个空格第 5行prf语句格式控制串中加入是非格式逗号 因此输出a,b值的间加了个逗号第 6行格式串要求按型输出 a,b值第 7行中为了提示输出结果又增加了非格式


   2、格式

   在Turbo C中格式般形式为: [标志][输出最小宽度][.精度][长度]类型 其中方括号项为可选项各项意义介绍如下:

   1.类型类型用以表示输出数据类型其格式符和意义下表所示:

表示输出类型格式 格式意义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以 8进制形式输出无符号整数(不输出前缀O)
x 以十 6进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e 以指数形式输出单、双精度实数
g 以%f%e中较短输出宽度输出单、双精度实数
c 输出单个
s 输出

   2.标志

   标志为-、 、#、空格 4种其意义下表所示:

标志格式 标 志 意 义
- 结果左对齐右边填空格
输出符号(正号或负号)空格输出值为正时冠以空格为负时冠以负号
# 对csdu类无影响;对o类 在输出时加前缀对x类在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点

   3.输出最小宽度

   用十进制整数来表示输出最少位数 若实际位数多于定义宽度则按实际位数输出 若实际位数少于定义宽度则补以空格或0

   4.精度

   精度格式符以“.”开头后跟十进制整数本项意义是:如果输出数字则表示小数位数;如果输出 则表示输出个数;若实际位数大于所定义精度数则截去超过部分

   5.长度

   长度格式符为h,l两种h表示按短整型量输出l表示按长整型量输出

void {
a=15;
float b=138.3576278;
double c=35648256.3645687;
char d=\'p\';
prf(\"a=%d,],%o,%x\\n\",a,a,a,a);
prf(\"b=%f,%lf,%5.4lf,%e\\n\",b,b,b,b);
prf(\"c=%lf,%f,%8.4lf\\n\",c,c,c);
prf(\"d=%c,孿\ \",d,d);
} a<--15
b<--138.3576278
c<--35648256.3645687
d<--\'p\'
{
a=29;
float b=1243.2341;
double c=24212345.24232;
char c=\'h\'
prf(\"a=%d,],%o,%x\\n\",a,a,a,a);
prf(\"b=%f,%lf,%5.4lf,%e\\n\",b,b,b,b);
prf(\"c=%lf,%f,%8.4lf\\n\",c,c,c);
prf(\"d=%c,孿\ \",d,d);
}

   本例第 7行中以 4种格式输出整型变量a其中“] ”要求输出宽度为5而a值为15只有两位故补 3个空格 第 8行中以 4种格式输出实型量b其中“%f”和“%lf ”格式输出相同介绍说明“l”符对“f”类型无影响“%5.4lf”指定输出宽度为5精度为4由于实际长度超过5故应该按实际位数输出小数位数超过4位部分被截去第 9行输出双精度实数“%8.4lf ”由于指定精度为4位故截去了超过4位部分第十行输出量d其中“?”指定输出宽度为8故在输出p的前补加7个空格

   使用prf时还要注意个问题 那就是输出表列中求值顺序区别编译系统不定相同可以从左到右 也可从右到左Turbo C是按从右到左进行如把例2.13改写如下述形式:

void {
  i=8;
  prf(\"%d\\n%d\\n%d\\n%d\\n%d\\n%d\\n\", i,--i,i--,i ,-i--);
}
i<--8

   这个和例2.13相比只是把多个prf语句改个prf 语句输出但从结果可以看出是区别为什么结果会区别呢?就是prf对输出表中各量求值顺序是自右至左进行 在式中先对最后项“-i--”求值结果为-8,然后i自减1后为7 再对“-i ”项求值得-7然后i自增1后为8再对“i--”项求值得8然后i再自减1后为7再求“i ”项得7然后I再自增1后为8 再求“--i”项i先自减1后输出输出值为7 最后才求输出表列中项“ i”此时i自增1

后输出8但是必须注意 求值顺序虽是自右至左但是输出顺序还是从左至右 因此得到结果是上述输出结果



   输出

   putchar

   putchar 输出 其功能是在显示器上输出单个般形式为: putchar(变量) 例如:

   putchar(\'A\'); 输出大写字母A
   putchar(x); 输出变量x
   putchar(\'\\n\'); 换行 对控制则执行控制功能不在屏幕上显示 使用本前必须要用文件包含命令:

#<stdio.h>
# <stdio.h>
void {
  char a=\'B\',b=\'o\',c=\'k\';
  putchar(a);putchar(b);putchar(b);putchar(c);putchar(\'\\t\');
  putchar(a);putchar(b);
  putchar(\'\\n\');
  putchar(b);putchar(c);
}
Tags:  c语言入门经典 c语言入门教程 c语言入门 c语言输入输出

延伸阅读

最新评论

发表评论