zoukankan      html  css  js  c++  java
  • C说话教程第三章: C说话程序方案初步(2)



    二、幻术字符串

    在Turbo C中幻术字符串的一样泛泛体式格局为: [标记][输出最小宽度][.精度][长度]典型 个中方括号[]中的项为可选项。各项的意义引见如下:
    1.典型典型字符用以泄漏默示输出数据的典型,其幻术符和意义下表所示:
    泄漏默示输出典型的幻术字符       幻术字符意义
    d                 以十进制体式格局输出带标记整数(负数不输出标记)
    o                 以八进制体式格局输出无标记整数(不输出前缀O)
    x                 以十六进制体式格局输出无标记整数(不输出前缀OX)
    u                 以十进制体式格局输出无标记整数
    f                 以小数体式格局输出单、双精度实数
    e                 以指数体式格局输出单、双精度实数
    g                 以%f%e中较短的输出宽度输出单、双精度实数
    c                 输出单个字符
    s                 输出字符串
    2.标记
    标记字符为-、 、#、空格四种,其意义下表所示:
    标记幻术字符      标 志 意 义
    -          成效左对齐,右边填空格
             输出标记(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
    #          对c,s,d,u类无影响;对o类, 在输出时加前
    缀o         对x类,在输出时加前缀0x;对e,g,f 类当成效有小数时才给出小数点
    3.输出最小宽度
    用十进制整数来泄漏默示输出的最少位数。 若理论位数多于定义的宽度,则按理论位数输出, 若理论位数少于定义的宽度则补以空格或0。
    4.精度
    精度幻术符以“.”扫尾,后跟十进制整数。本项的意义是:若是输出数字,则泄漏默示小数的位数;若是输出的是字符, 则泄漏默示输出字符的个数;若理论位数大于所定义的精度数,则截去超出的局部。
    5.长度
    长度幻术符为h,l两种,h泄漏默示按短整型量输出,l泄漏默示按长整型量输出。
    void main(){
    int a=15;
    float b=138.3576278;
    double c=35648256.3645687;
    char d='p';
    printf("a=%d,],%o,%x\n",a,a,a,a);
    printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
    printf("c=%lf,%f,%8.4lf\n",c,c,c);
    printf("d=%c,�\n",d,d);
    } a<--15
    b<--138.3576278
    c<--35648256.3645687
    d<--'p'

    main()
    {
    int a=29;
    float b=1243.2341;
    double c=24212345.24232;
    char d='h';
    printf("a=%d,],%o,%x\n",a,a,a,a);
    printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
    printf("c=%lf,%f,%8.4lf\n",c,c,c);
    printf("d=%c,�\n",d,d);
    }
    本例第七行中以四种幻术输出整型变量a的值,个中“] ”要求输出宽度为5,而a值为15只要两位故补三个空格。 第八行中以四种幻术输出实型量b的值。个中“%f”和“%lf ”幻术的输出相反,声明“l”符对“f”典型无影响。“%5.4lf”指定输出宽度为5,精度为4,因为理论长度超出5故应该按理论位数输出,小数位数超出4位局部被截去。第九行输出双精度实数,“%8.4lf ”因为指定精度为4位故截去了超出4位的局部。第十行输出字符量d,个中“� ”指定输出宽度为8故在输出字符p之前补加7个空格。

    利用printf函数时还要留意一个标题, 那即是输出表列中的求值序次。分比喻的编译零碎纷比喻定相反,可以从左到右, 也可从右到左。Turbo C是按从右到左截至的。如把例2.13改写如下述体式格局:
    void main(){
    int i=8;
    printf("%d\n%d\n%d\n%d\n%d\n%d\n", i,--i,i--,i ,-i--);
    } i<--8

    这个程序与例2.13比赛只是把多个printf语句改一个printf 语句输出。但从成效可以看出是分比喻的。为什么成效会分比喻呢?即是因为printf函数对输出表中各量求值的序次是自右至左截至 的。在式中,先对末了一项“-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'); 换行 对节制字符则实验节制功用,不在屏幕上默示。 利用本函数前必需要用文件包括命令:
    #include<stdio.h>
    void main(){
    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);
    }

    数据输出语句

    C说话的数据输出也是由函数语句完成的。 本节引见从规范输出设置—键盘上输出数据的函数scanf和getchar。 scanf函数 scanf函数称为幻术输出函数,即按用户指定的幻术从键盘上把数据输出到指定的变量之中。

    一、scanf函数的一样泛泛体式格局

    scanf函数是一个规范库函数,它的函数原型在头文件“stdio.h”中,与printf函数相反,C说话也承诺在利用scanf函数之前不必包括stdio.h文件。scanf函数的一样泛泛体式格局为: scanf(“幻术节制字符串”,地点表列); 个中,幻术节制字符串的作用与printf函数相反,但不克不及默示非幻术字符串, 也即是不克不及默示提示字符串。地点表列中给出各变量的地点。 地点是由地点运算符“&”后跟变量名组成的。歧,&a,&b告辞泄漏默示变量a和变量b 的地点。这个地点即是编译零碎在内存中给a,b变量分派的地点。在C说话中,利用了地点这个见解,这是与其它说话分比喻的。 应该把变量的值和变量的地点这两个分比喻的见解区别开来。变量的地点是C编译零碎分派的,用户不必眷注详细的地点是多少。 变量的地点和变量值的关系如下: &a--->a567 a为变量名,567是变量的值,&a是变量a的地点。在赋值表达式中给变量赋值,如: a=567 在赋值号右边是变量名,不克不及写地点,而scanf函数在本质上也是给变量赋值,但要求写变量的地点,如&a。 这两者在体式格局上是分比喻的。&是一个取地点运算符,&a是一个表达式,其功用是求变量的地点。
    void main(){
    int a,b,c;
    printf("input a,b,c\n");
    scanf("%d%d%d",&a,&b,&c);
    printf("a=%d,b=%d,c=%d",a,b,c);
    }
    留意&的用法!
    在本例中,因为scanf函数本人不克不及默示提示串,故先用printf语句在屏幕上输出提示,请用户输出a、b、c的值。实验scanf语句,则参预TC屏幕进入用户屏幕等候用户输出。用户输出7、8、9后按下回车键,此时,零碎又把前去TC屏幕。在scanf语句的幻术串中因为没有非幻术字符在“%d%d%d”之间作输出时的间隔, 是以在输出时要用一个以上的空格或回车键作为每两个输出数之间的间隔。
    如: 7 8 9

    7
    8
    9



    版权声明: 原创作品,承诺转载,转载时请务必以超链接体式格局标明文章 原始情由 、作者信息和本声明。否则将清查法规责任。

  • 相关阅读:
    nyoj 202红黑树 (搜索)
    POJ 3281 Dining(最大流)
    nyoj-488 素数环 +nyoj -32 组合数 (搜索)
    LeetCode100:Same Tree
    LeetCode283:Move Zeros
    Leetcode226:Invert Binary Tree
    LeetCode258:Add Digits
    Leetcode237:Delete Node in a Linked List
    LeetCode7:Reverse Integer
    LeetCode292:Nim Game
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975621.html
Copyright © 2011-2022 走看看