C语言——标准输出函数(printf、putchar和puts)

2024-02-03 02:12

本文主要是介绍C语言——标准输出函数(printf、putchar和puts),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1. 标准输入输函数出头文件
  • 2. printf
    • 2.1 函数申明
    • 2.2 基本用法
    • 2.3 占位符
    • 2.4 输出格式
      • 2.4.1 限定宽度
      • 2.4.2 总是显示正负号
      • 2.4.3 限定小数位数
      • 2.4.4 输出部分字符串
  • 3. putchar
    • 3.1 函数申明
    • 3.2 基本用法
  • 4. puts
    • 4.1 函数申明
    • 4.2 基本用法

1. 标准输入输函数出头文件

#include <stdio.h>

2. printf

2.1 函数申明

int printf ( const char * format, ... );

2.2 基本用法

  • printf() 的作用是将参数文本输出到屏幕。它名字里面的 f 代表 format (格式化),表示可以定制输出文本的格式
#include <stdio.h>
int main(void)
{printf("Hello World");return 0;
}

在这里插入图片描述

  • 上⾯命令会在屏幕上输出⼀行文字“Hello World”
  • printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行
  • 为了让光标移到下⼀行的开头,可以在输出文本的结尾,添加⼀个换行符 \n
#include <stdio.h>
int main(void)
{printf("Hello World\n");return 0;
}

在这里插入图片描述

  • 如果文本内部有换行,也是通过插入换行符来实现,如下方代码:
#include <stdio.h>
int main(void)
{printf("Hello\nWorld\n");printf("Hello\n");printf("World\n");return 0;
}

在这里插入图片描述

2.3 占位符

在这里插入图片描述

  • printf() 可以在输出文本中指定占位符
  • 谓“占位符”,就是这个位置可以用其他值代入
#include <stdio.h>
int main()
{printf("There are %d apples\n", 3);return 0;
}
  • 上⾯示例中, There are %d apples\n 是输出文本,里面的 %d 就是占位符,表示这个位置要用其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表示占位符的类型, %d 表示这里代入的值必须是⼀个整数
  • printf() 的第⼆个参数就是替换占位符的值,上面的例子是整数 3 替换 %d 。执行后的输出结果就是 There are 3 apples
  • 常用的占位符除了 %d ,还有 %s 表示代入的是字符串
#include <stdio.h>
int main()
{printf("%s will come tonight\n", "zhangsan");return 0;
}
  • 上面示例中, %s 表示代入的是⼀个字符串,所以 printf() 的第⼆个参数就必须是字符串,这个例子是 zhangsan 。执行后的输出就是 zhangsan will come tonight
  • 输出文本里面可以使用多个占位符
#include <stdio.h>
int main()
{printf("%s says it is %d o'clock\n", "lisi", 21);return 0;
}
  • 上面示例中,输出文本 %s says it is %d o’clock 有两个占位符,第⼀个是字符串占位符 %s ,第⼆个是整数占位符 %d ,分别对应 printf() 的第⼆个参数( lisi )和第三个参数( 21 )。执行后的输出就是 lisi says it is 21 o’clock
  • printf() 参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf() 的参数就应该有 n +1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值

2.4 输出格式

2.4.1 限定宽度

  • printf() 允许限定占位符的最小宽度
#include <stdio.h>
int main()
{printf("%5d\n", 123); // 输出为 " 123"printf("%#05d\n", 123)//输出为“00123”return 0;
}

在这里插入图片描述

  • 上面示例中, %5d 表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面面会添加空格,如果%后加上 #0 ,则不足位补0
  • 输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面插入⼀个 - 号
#include <stdio.h>
int main()
{printf("%-5d\n", 123); // 输出为 "123  "printf("%-#05d\n", 123); // 输出为 "123  "return 0;
}

在这里插入图片描述

  • 对于小数,这个限定符会限制所有数字的最小显示宽度
#include <stdio.h>
int main()
{printf("%12f\n", 123.45);return 0;
}

在这里插入图片描述

  • 上面示例中, %12f 表示输出的浮点数最少要占据12位。由于小数的默认显示精度是小数点后6位,所以 123.45 输出结果的头部会添加2个空格

2.4.2 总是显示正负号

  • 默认情况下, printf() 不对正数显示 + 号,只对负数显示 - 号。如果想让正数也输出 + 号,可以在占位符的 % 后面加⼀个 +
#include <stdio.h>
int main()
{printf("%+d\n", 12); // 输出 +12printf("%+d\n", -12); // 输出 -12return 0;
}

在这里插入图片描述

  • 上面示例中, %+d 可以确保输出的数值,总是带有正负号

2.4.3 限定小数位数

  • 输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写成 %.2f
#include <stdio.h>
int main()
{printf("Number is %.2f\n", 0.5);return 0;
}

在这里插入图片描述

  • 上⾯示例中,如果希望小数点后面输出3位( 0.500 ),占位符就要写成 %.3f
  • 这种写法可以与限定宽度占位符,结合使用:
#include <stdio.h>
int main()
{printf("%6.2f\n", 0.5);return 0;
}

在这里插入图片描述

  • 上面示例中, %6.2f 表示输出字符串最小宽度为6,小数位数为2。所以,输出字符串的头部有两个空格
  • 最小宽度和小数位数这两个限定值,都可以用 * 代替,通过 printf() 的参数传入

#include <stdio.h>
int main()
{int a = 6;int b = 2;printf("%*.*f\n", a, b, 0.5);return 0;
}

在这里插入图片描述

2.4.4 输出部分字符串

  • %s 占位符用来输出字符串,默认是全部输出。如果只想输出开头的部分,可以用 %.[m]s 指定输出的长度,其中 [m] 代表⼀个数字,表示所要输出的长度
#include <stdio.h>
int main()
{printf("%.5s\n", "hello world");return 0;
}

在这里插入图片描述

  • 上面例中,占位符 %.5s 表示只输出字符串“hello world”的前5个字符,即“hello”

3. putchar

3.1 函数申明

int putchar ( int character );

3.2 基本用法

  • putchar函数把输入的整型对应的字符输出到屏幕上,并返回相同的整型。这个函数在同一个时间内只会输出一个单一的字符
  • putchar函数输出后不会自动换行,如需换行可以使用prinf函数
#include <stdio.h>
int main()
{int c = getchar();printf("%d\n", c);int b = putchar(c);printf("\n");printf("%d\n", b);return 0;
}

在这里插入图片描述

4. puts

4.1 函数申明

int puts ( const char * str );

4.2 基本用法

  • puts函数把字符串 s 和一个尾随的换行符写入到 stdout(屏幕)
  • puts函数的正常打印后的返回值为0,打印异常为EOF
# include <stdio.h>
int main(void)
{char str[20] = "0";  //字符数组初始化0printf("请输入字符串:");gets(str);printf("%s\n", str);int a = puts(str);printf("%d\n", a);return 0;
}

在这里插入图片描述
最后,
恭喜你又遥遥领先了别人!

在这里插入图片描述

这篇关于C语言——标准输出函数(printf、putchar和puts)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/672697

相关文章

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使