`

printf的简单使用

阅读更多

原文:http://hi.baidu.com/wangyuquansky/blog/item/319ce0903b98638aa877a425.html

printf命令, 格式化输出, 是echo命令的增强版. 它是C语言printf()库函数的一个有限的变形, 并且在语法上有些不同.

printf format-string... parameter...

这是Bash的内建版本, 与/bin/printf或者/usr/bin/printf命令不同. 如果想更深入的了解, 请察看printf(系统命令)的man页.

 

Caution

老版本的Bash可能不支持printf.


例子 11-2. 使用printf的例子

1 #!/bin/bash
  2 # printf 示例
  3 
  4 PI=3.14159265358979
  5 DecimalConstant=31373
  6 Message1="Greetings,"
  7 Message2="Earthling."
  8 
  9 echo
 10 
 11 printf "Pi to 2 decimal places = %1.2f" $PI
 12 echo
 13 printf "Pi to 9 decimal places = %1.9f" $PI  # 都能够正确的结束.
 14 
 15 printf "\n"                                  # 打印一个换行,
 16                                              # 等价于 'echo' . . .
 17 
 18 printf "Constant = \t%d\n" $DecimalConstant  # 插入一个 tab (\t).
 19 
 20 printf "%s %s \n" $Message1 $Message2
 21 
 22 echo
 23 
 24 # ==========================================#
 25 # 模拟C函数, sprintf().
 26 # 使用一个格式化的字符串来加载一个变量.
 27 
 28 echo 
 29 
 30 Pi12=$(printf "%1.12f" $PI)
 31 echo "Pi to 12 decimal places = $Pi12"
 32 
 33 Msg=`printf "%s %s \n" $Message1 $Message2`
 34 echo $Msg; echo $Msg
 35 
 36 #  像我们所看到的一样, 现在'sprintf'可以
 37 #+ 作为一个可被加载的模块,
 38 #+ 但是不具可移植性.
 39 
 40 exit 0

使用printf的最主要的应用就是格式化错误消息.

 

1 E_BADDIR=65
  2 
  3 var=nonexistent_directory
  4 
  5 error()
  6 {
  7   printf "$@" >&2
  8   # 格式化传递进来的位置参数, 并把它们送到stderr.
  9   echo
 10   exit $E_BADDIR
 11 }
 12 
 13 cd $var || error $"Can't cd to %s." "$var"
 14 
 15 # 感谢, S.C.
分享到:
评论

相关推荐

    printf函数实现详解

    下面是一个简单的 printf 函数的示例: ```c int __cdecl printf ( const char *format, ... ) { va_list ap; int buffing; int retval; va_start(ap, format); _ASSERTE(format != NULL); _lock_str2(1, ...

    Printf函数的分析与实现过程(简单实例)

    Printf函数的分析与实现过程(简单实例).讲述了printf函数的实现原理,及printf 函数的简单实例

    一段简单的printf使用示例代码

    在printf的格式字符串中指定转换参数和域宽的方法

    stc单片机printf输出到1602

    本文将详细介绍如何在STC单片机上使用printf函数将数据输出到1602液晶显示屏。 首先,我们要理解STC单片机与1602 LCD的交互原理。1602 LCD通常采用4线或8线接口与单片机连接,其中4线接口主要用于控制信号(RS、RW...

    STM32的UART串口2Printf简单打印(STM32神舟IV号-库函数版)程序,亲测能用

    在压缩包中的“UART串口2Printf简单打印(STM32神舟IV号-库函数版)”程序中,应该包含了这些配置的示例代码和详细说明。这份资料将帮助你理解如何实现这个功能,包括如何设置和使用`HAL_UART_Transmit()`函数发送数据...

    cubemx实现串口printf重定向自动打印

    本文将详细介绍如何使用STM32CubeMX配置串口以及如何实现printf重定向。 首先,STM32CubeMX是ST公司提供的一款图形化配置工具,用于快速配置STM32微控制器的外设。在本项目中,我们需要通过以下步骤来配置串口: 1...

    printf程序

    下面是一个简单的STM32`printf`模板程序的框架: ```c #include "stdio.h" #include "stm32f4xx_hal.h" extern UART_HandleTypeDef huart1; // 假设使用UART1 void serial_putchar(char c, FILE *stream) { if...

    自己实现的简易printf

    针对嵌入式开发中打印信息而实现的printf,可以向串口输出信息

    英飞凌4300单片机printf串口重定向替代方案已调试通过工程文件

    针对英飞凌4300单片机,我们不能简单地修改链接器脚本或配置文件来实现stdio的重定向,而是需要自己编写一个串口输出函数,如putchar,然后在printf内部替换原有的标准输出函数。这样,printf函数在处理格式化字符串...

    vsprintf_printf_

    对于`%s`,`do_printf_string`函数会简单地复制字符串到输出缓冲区。浮点数转换则可能涉及`do_printf_float`等函数,这些函数会根据`%f`、`%e`或`%g`的不同格式进行适当的转换。 `vsprintf`函数还涉及到对齐、填充...

    C51实现printf打印

    由于C51标准库不包含`printf`,我们需要自定义一个函数,例如`my_printf`,并使用`putchar`函数将字符发送到串口。`putchar`是一个简单的函数,负责将单个字符发送到UART。 ```c void my_putchar(char c) { ...

    printf用法大全,C语言printf格式控制符一览表.docx

    最简单的使用方法是输出一段纯文本,例如输出"Hello World!": ```c #include int main() { printf("Hello World!\n"); // \n表示换行 return 0; } ``` **2. 输出带格式的文本** 当需要输出变量值时,可以使用...

    MFC调用WIN32控制台程序调用printf功能

    为了在MFC项目中使用`printf`函数输出信息到控制台,我们需要完成以下步骤: 1. **添加必要的头文件**: - `#include <io.h>`:提供了`_open_osfhandle`等用于文件句柄操作的函数。 - `#include <fcntl.h>`:包含...

    自己写的printf

    实现一个简单的 `myprintf`,你需要关注以下几个核心步骤: 1. **解析格式化字符串**:遍历字符串,识别出 `%` 开始的格式化指示符,并根据其后的字符确定输出类型和参数。 2. **处理变量参数列表**:C 语言中,...

    msp430-printf

    《使用 MSP430 单片机实现 printf 函数》 在嵌入式系统开发中,尤其是在使用单片机如 MSP430 进行低功耗应用时,调试是必不可少的一个环节。传统的调试手段如 LED 灯、蜂鸣器等在复杂问题的排查上显得力不从心。...

    uart_printf程序

    2. **缓冲区管理**:由于嵌入式系统资源有限,可能没有标准库中的缓冲区管理,UART_printf可能需要自定义一个简单的缓冲区,用于临时存储待发送的数据。 3. **格式化字符串处理**:UART_printf的核心功能是对输入的...

    8258&8278SDK移植Printf打印调试module工程移植实例.rar

    6. **测试与验证**:编写简单的测试程序,通过调用printf输出不同类型的变量和字符串,确保打印功能正常工作。 这个实例教程可能会包含以上步骤的详细指导,以及如何在8258和8278平台上进行操作的具体说明。通过这...

    宏封装printf带颜色打印

    以下是一个简单的宏封装printf的例子: ```cpp #define COLOR_RED "\033[31m" #define COLOR_RESET "\033[0m" #define PRINT_COLORRED(text) printf(COLOR_RED "%s" COLOR_RESET, text) int main() { PRINT_...

Global site tag (gtag.js) - Google Analytics