zoukankan      html  css  js  c++  java
  • C

    printf()

    printf() 函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

    printf() 函数的调用格式为:
    printf("< 格式化字符串 >", < 参量表 >);

    其中格式化字符串包括两部分内容:一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以 "%" 开始, 后跟一个或几个规定字符, 用来确定输出内容格式。
    参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用 "," 分开, 且顺序一一对应, 否则将会出现意想不到的错误。

    格式化规定符

    格式化规定符 作用
    %d 十进制有符号整数
    %u 十进制无符号整数
    %f 浮点数
    %s 字符串
    %c 单个字符
    %p 指针的值
    %e 指数形式的浮点数
    %x %X 无符号以十六进制表示的整数
    %0 无符号以八进制表示的整数
    %g 自动选择合适的表示法

    说明:

    1. 可以在 "%" 和字母之间插进数字表示最大场宽。
      例如: %3d 表示输出 3 位整型数, 不够 3 位右对齐。
      %9.2f 表示输出场宽为 9 的浮点数, 其中小数位为 2, 整数位为 6,
      小数点占一位, 不够 9 位右对齐。
      %8s 表示输出 8 个字符的字符串, 不够 8 个字符右对齐。
      如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。
      但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;
      若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。
      另外, 若想在输出值前加一些 0, 就应在场宽项前加个 0。
      例如: %04d 表示在输出一个小于 4 位的数值时, 将在前面补 0 使其总宽度
      为 4 位。
      如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,
      小数点前的数字代表最小宽度。
      例如: %6.9s 表示显示一个长度不小于 6 且不大于 9 的字符串。若大于 9, 则
      第 9 个字符以后的内容将被删除。

    2. 可以在 "%" 和字母之间加小写字母 l, 表示输出的是长型数。
      例如: %ld 表示输出 long 整数
      %lf 表示输出 double 浮点数

    3. 可以控制输出左对齐或右对齐, 即在 "%" 和字母之间加入一个 "-" 号可
      说明输出为左对齐, 否则为右对齐。
      例如: %-7d 表示输出 7 位整数左对齐
      %-10s 表示输出 10 个字符左对齐

    特殊规定字符

    特殊规定字符 作用
    换行
    f 清屏并换页
    回车
    Tab 符
    xhh 表示一个 ASCII 码用 16 进表示, 其中 hh 是 1 到 2 个 16 进制数

    mian 函数获取参数

    ANSI-C(C89/C99)的话 main() 函数有 2 种主要形式:

    1. int main(void)
    2. int main(int argc, char *argv[]),也可写成 int main(int argc, char **argv)
      argv[argc]放空指针(NULL 指针),argcargv 可以用别名。
    • 另外,还有一种受系统限制的形式:
      int main(int argc, char _argv[], char _envp[])
      前两个参数同 2,第三个参数 _envp[] 放环境变量(这个形式很少用)。
      ANSI-C 推荐的带参数的 main 函数只有上面 (2) 这一种。

    C 和 C++ 中 main 函数常见的几种形式:

    1. main()
    2. int main()
    3. int main(void)
    4. int main(int, char**)
    5. int main(int, char*[])
    6. int main(int argc, char **argv)
    7. int main(int argc, char _argv[])
    8. int main(int argc, char *argv[], char_envp[])
    9. void main(void)
    • (1) 是 (3) 的简写。不推荐使用。
    • (2) 是 (3) 的简写。在 C++ 中是正确的形式。
    • (3) 在 C 和 C++ 中都是正确的形式。推荐使用。(还有缺省 int 的 main(void) 形式)。
    • (4) 和 (5) 是不用参数时的一种写法。编译器级别高时会警告。不推荐使用。
    • (6) 是 (7) 的另外写法。两种都可以,凭个人爱好。
    • (7) 是带参数的正确的形式。推荐使用。
    • (8) 是一种很少用的写法,且受系统限制。
    • (9) 一般不认为是正确的写法,但是在嵌入式系统中有使用(包括 void main() 形式)。

    编译错误 syntax error : missing ';' before 'type'

    将变量声明放在函数一开始,eg:

    #include <stdio.h>
    int main(int argc, char** argv)
    {
      //这样会编译错误
      for (int i = 0; i < argc; ++i)
      {
        printf("argv[%d] = %s
    ", i, argv[i]);
      }
        
      //这样才不会编译错误
      /**
      int i;
      for (i = 0; i < argc; ++i)
      {
        printf("argv[%d] = %s
    ", i, argv[i]);
      }
      */
      
      getchar();
      return 0;
    }
  • 相关阅读:
    在Unix上使用管道压缩exp导出文件
    自制CPU的黑暗历程一
    Error C1189: #error: Please use the /MD switch for _AFXDLL builds
    Redis乐观锁解决高并发抢红包的问题
    PHP分页类
    汇编基础——使用nasm和bochs学习汇编
    数据同步工具DBsync
    完成端口的一些教程
    sdf
    (转)C#(WIN FORM)两个窗体间LISTVIEW值的修改
  • 原文地址:https://www.cnblogs.com/jffun-blog/p/10217584.html
Copyright © 2011-2022 走看看