C/C++语言printf命令使用方法

在C语言以及其它语言中我们经常看到printf命令,那么怎么使用该命令输出想要的结果呢?下面就为大家演示。

1、printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是: printf("格式化字符串", 变量)。在使用前需要注意的是该命令被定义在stdio.h头文件中(C语言),所以需要在程序中加入#include<stdio.h>。printf()函数是一个格式化输出函数, 用户可以通过该命令向标准输出设备输出指定的格式信息。使用的方法是: printf("格式化字符串", 变量)。在使用前需要注意的是该命令被定义在stdio.h头文件中(C语言),所以需要在程序中加入#include<stdio.h>。

1、printf命令的使用方法

直接输出想要打印在屏幕上的文字:

例如:

printf("百度经验!\n");

printf("今天天气不错!\n");

这里的\n代表的是换行。

2、输出整数,以固定长度输出整数:

例如:

int a1=1;

int a2=10;

int a3=100;

printf("The result is %d.\n",a1);

printf("The result is %3d.\n",a1);

printf("The result is %3d.\n",a2);

printf("The result is %3d.\n",a3);

其中的%d代表后面的变量,d表示整数,d前面的整数代表该整数输出时会占用多大的空间,一般用于对齐输出。

3、输出小数,保留小数点后固定的位数:

例如:

float a=2.01;

printf("The result is %f.\n",a);

printf("The result is %.3f.\n",a);

double b=5.01;

printf("The result is %lf.\n",b);

printf("The result is %.3lf.\n",b);

小数有两种表示方法,一种是float单精度,一种是double双精度,使用起来没有太大的差别,只是double的精度是float精度的两倍,在printf输出时f代表单精度,而lf代表双精度。另外,“.3f”和".3lf"中的点加整数代表需要保留几位小数。

4、输出字符串(较为常用):

例如:

const char* str="Hello World!";

char buf[]="Hello World!";

printf("%s\n",str);

printf("%s\n",buf);

这里的s就是代表后面的字符串,而后面的变量可以使用字符串的指针或者字符串数组的数组名,结果都是一样的。

(0)

相关推荐

  • C++小知识:用合适的工具来分析你的代码

    静态代码分析工具可简化编码过程,检测出错误并帮助修复.有个国外团队检测了 200 多个 C/C++ 开源项目,包括了 Php.Qt 和 Linux 内核等知名项目.于是他们每天分享一个错误案例,并给出相应建议.今天的案例来自 LibreOffice 项目. 错误代码 BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { .... CreateThread( NULL, 0, ParentM

  • C++小知识:C/C++中不要按值传递数组

    错误的代码: ID_INLINE mat3_t::mat3_t( float src[ 3 ][ 3 ] ) { memcpy( mat, src, sizeof( src ) ); } 说明: 有时候程序员会忘记 C/C++ 里数组不能按值传递给函数.当你试图这样做时,是数组的指针(第一个元素的地址)而不是整个数组被传递.我们还应该记住,方括号中的数字没有任何意义.它们仅仅是程序员所做的标志,记录了传递数组的『假定』大小.事实上,你也可以传递一个大小完全不同的数组.例如,下面的代码就会成功编译

  • C++深入学习之彻底理清重载函数匹配

    前言 前面我们讲到了<函数重载>,有了函数重载之后,就需要确定某次调用需要选用哪个函数.这个过程可以称之为函数匹配或者重载确定.大多数情况下,我们都很容易能够确定某次调用需要选用哪个函数,但事实上不尽然.但通过本文将彻底理清重载函数匹配 匹配过程 为便于说明,将函数匹配分为三个阶段,确定候选函数,确定可行函数,确定最佳匹配函数. 确定候选函数 候选函数也就是和被调用的函数同名,并且其声明在调用点可见.举个简单的例子. 假设有两个文件,1.cpp和2.cpp,内容分别如下: 1.cpp: //函

  • C++小知识:大于0并不意味着等于1

    注:本文所指出的错误例子其实非常简单,任何 C++ 的初学者都能看懂.但是这个错误也非常典型,估计很多非常严肃的代码里面都存在这样的错误. 这个 Bug 是来自于 CoreCLR 源代码. 错误代码: bool operator( )(const GUID& _Key1, const GUID& _Key2) const { return memcmp(&_Key1, &_Key2, sizeof(GUID)) == -1; } 解释: 你不能将 memcpy().strc

  • C++小知识:不要去做编译器的工作

    对于C++编程的老鸟来说,有时候他们喜欢把一些东西按照编译器的工作原理进行改写,以便提高代码的运行效率.这么做确实高明,也能体现出程序员的水平,但是这么做也是有风险的.因为有时候你可能会因为一些简单的笔误,而造成非常难以察觉的错误.本文就给出了类似的例子. 这个Bug 出现在MySQL源代码中. 错误代码: static int rr_cmp(uchar *a,uchar *b) { if (a[0] != b[0]) return (int) a[0] - (int) b[0]; if (a[

  • C++基础学习之函数重载的简单介绍

    前言 我们在平时写代码中会用到几个函数但是他们的实现功能相同,但是有些细节却不同.例如:交换两个数的值其中包括(int, float,char,double)这些个类型.在C语言中我们是利用不同的函数名来加以区分. void Swap1(int* a, int* b); void Swap2(float* a, float* b); void Swap3(char* a, char* b); void Swap4(double* a, double* b); 我们可以看出这样的代码不美观而且给程

  • C++利用链表模板类实现简易队列

    本文实例为大家分享了C++利用链表模板类实现一个队列的具体代码,供大家参考,具体内容如下 设计思想:MyQueue.h中对模板类进行声明和实现.首先定义结点的结构体,包含数据和指针域两部分.队列类定义中声明和实现了元素入队,出队,打印队首元素和队列等方法. 注意: 1)模板类的声明和定义不能分开(即不能分别放在.h和.cpp文件里). 2)声明新节点时,如果声明的节点是辅助操作的,可以不用new关键字,例如在析构函数中,直接用:Node<T>* temp:定义即可.如果声明一个新节点加入队列,

  • C++小知识:复制粘贴代码千万要小心

    错误代码: sampleCount VoiceKey::OnBackward (....) { ... int atrend = sgn(buffer[samplesleft - 2]- buffer[samplesleft - 1]); int ztrend = sgn(buffer[samplesleft - WindowSizeInt-2]- buffer[samplesleft - WindowSizeInt-2]); ... } 解释: "buffer[samplesleft – Wi

  • C++小知识:用++i替代i++

    静态代码分析工具可简化编码过程,检测出错误并帮助修复.PVS-Studio 是一个用于 C/C++ 的静态代码分析工具.该团队检测了 200 多个 C/C++ 开源项目,包括了 Unreal Engine.Php.Haiku.Qt 和 Linux 内核等知名项目.于是他们每天分享一个错误案例,并给出相应建议. 这个 bug 是在 Unreal Engine 4 的源代码中发现的. 错误代码: void FSlateNotificationManager::GetWindows( TArray<

  • C++小知识:不要节约代码行数

    本篇案例来自 KDE4 源码. 错误代码: void LDAPProtocol::del( const KUrl &_url, bool ) { .... if ( (id = mOp.del( usrc.dn() ) == -1) ) { LDAPErr(); return; } ret = mOp.waitForResult( id, -1 ); .... } 说明: 一些程序员竭尽全力想把更多的代码压缩到一行.他们尤其热衷于"if"条件语句,把赋值和比较一次性完成. 一个

随机推荐