学习心得(四)

来源:互联网 发布:戏曲进校园 知乎 编辑:程序博客网 时间:2024/05/16 13:53

 

 

1.printf
    %-20.10s:输出字符串,一共输出10个字符(多余的不输出),在20个字符的宽度内左对齐。
    %-20.10f:输出小数,精确到小数点后10位,在20个字符的宽度内左对齐。当原小数精度不足时,会有数字补齐;刚刚满足时,末位会有出入;精度过大时,四舍五入。
    同时,我注意到:float类型由于其存储方法,导致在有些情况下精度不高。在刚刚满足精度或精度不足时,在值上经常有出入。

2.特殊函数
    字符类测试和转换,是宏,不是函数。
    函数system(s)执行包含在字符串s中的命令,然后再返回执行当前程序。s中可包含的命令取决于系统。

3.scanf
    scanf中不能打印字符串。如果需要提示用户输入的内容,先使用printf打印,再用scanf读取。
    fscanf,sscanf,scanf主要用于读取ASCII文件的。读非ASCII文件请用fread。
    *符:跳过该输入值。该输入项在读入后不赋予相应的变量。如scanf("%d %*d %d",&a,&b);当输入位:1 2 3时,1被赋予a,2被跳过,3赋予b。   
    scanf中没有精度控制。scanf("%5.2f",&a)在gcc下编译通过,可以运行,但a得不到输入的值。

    C编译在碰到空格、TAB、回车或非法数据(如对"%d"输入“12A”时,A即为非法数据)时即认为该数据结束。

4.除运算符
    参与运算的2个参数均为整型时,结果也为整型,舍去小数部分。
    如果2个参数中有一个是实型,结果为双精度实型。

5.变量声明
    在声明变量时,不允许连续给多个变量赋初值。

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

7.比较运算
    判断语句if(0<a<10)总是为真。if(a>0 && a<10)才是正确表达。

8.条件运算符
    结合方向是自右向左。

10.switch
    各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
    在case或者default后,允许有多个语句,可以不用{}括起来。

原创粉丝点击