C语言各种类型数据的输出显示

之前我们使用 puts 来输出字符串。puts 是 output string 的缩写,只能用来输出字符串,不能输出整数、小数、字符等,我们需要用另外一个函数,那就是 printf。

printf 比 puts 更加强大,不仅可以输出字符串,还可以输出整数、小数、单个字符等,并且输出格式也可以自己定义,例如:

	以十进制、八进制、十六进制形式输出;要求输出的数字占 n 个字符的位置;控制小数的位数。

**printf 是 print format 的缩写,意思是“格式化打印”。**这里所谓的“打印”就是在屏幕上显示内容,与“输出”的含义相同,所以我们一般称 printf 是用来格式化输出的。

示例

printf("今天天气晴朗");

这个语句可以在屏幕上显示“今天天气晴朗”,与puts(“今天天气晴朗”);的效果类似。

输出变量 abc 的值:

int abc=333;
printf("%d", abc);

这里就比较有趣了。先来看%d,d 是 decimal 的缩写,意思是十进制数,%d 表示以十进制整数的形式输出。输出什么呢?输出变量 abc 的值。%d 与 abc 是对应的,也就是说,会用 abc 的值来替换 %d。

下面我们来看个复杂点的:

int abc=999;
printf("The value of abc is %d !", abc);

会在屏幕上显示:

The value of abc is 999 !

字符串 “The value of abc is %d !” 中的 %d 被替换成了 abc 的值,其他字符没有改变。这说明 %d 比较特殊,不会原样输出,会被替换成对应的变量的值。

再来看:

int a=100;
int b=200;
int c=300;
printf("a=%d, b=%d, c=%d", a, b, c);

会在屏幕上显示:

a=100, b=200, c=300

再次证明了 %d 与后面的变量是一一对应的,第一个 %d 对应第一个变量,第二个 %d 对应第二个变量……

%d称为格式控制符,它指明了以何种形式输出数据。格式控制符均以%开头,后跟其他字符。%d 表示以十进制形式输出一个整数。除了 %d,printf 支持更多的格式控制,例如:

	%c:输出一个字符。c 是 character 的简写。%s:输出一个字符串。s 是 string 的简写。%f:输出一个小数。f 是 float 的简写。

printf 支持更加复杂和优美的输出格式。

我们的完整程序

#include <stdio.h>
int main()
{int n = 100;char c = '@';  //字符用单引号包围,字符串用双引号包围float money = 93.96;printf("n=%d, c=%c, money=%f\n", n, c, money);return 0;
}

输出结果:

n=100, c=@, money=93.959999

程序解析
1 . \n是一个整体,组合在一起表示一个换行字符。换行符是 ASCII 编码中的一个控制字符,无法在键盘上直接输入,只能用这种特殊的方法表示,被称为转义字符。

	所谓换行,就是让文本从下一行的开头输出,相当于在编辑 Word 或者 TXT 文档时按下回车键。

puts 输出完成后会自动换行,而 printf 不会,要自己添加换行符,这是 puts 和 printf 在输出字符串时的一个区别。

2 . //后面的为注释。注释用来说明代码是什么意思,起到提示的作用,可以帮助我们理解代码。注释虽然也是代码的一部分,但是它并不会给程序带来任何影响,编译器在编译阶段会忽略注释的内容,或者说删除注释的内容。

3 . money 的输出值并不是 93.96,而是一个非常接近的值,这与小数本身的存储机制有关,这种机制导致很多小数不能被精确地表示,即使像 93.96 这种简单的小数也不行。

我们不用变量,将数据直接输出:

#include <stdio.h>
int main()
{float money = 93.96;printf("n=%d, c=%c, money=%f\n", 100, '@', money);return 0;
}

输出结果与上面相同。

编程中,我们会经常使用 printf,说它是C语言中使用频率最高的一个函数一点也不为过。

%ds输出什么

%d 输出整数,%s 输出字符串,那么 %ds 输出什么呢?

示例

#include <stdio.h>
int main()
{int a=5555;printf("a=%ds\n", a);return 0;
}

运行结果:

a=5555s

从输出结果可以发现,%d被替换成了变量 a 的值,而s没有变,原样输出了。这是因为, %d才是格式控制符,%ds在一起没有意义,s仅仅是跟在%d后面的一个普通字符,所以会原样输出。

那么如何在字符串中书写长文本
假设现在我们要输出一段比较长的文本,它的内容为:

	我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。

如果将这段文本放在一个字符串中,会显得比较臃肿,格式也不好看,就像下面这样:
在这里插入图片描述
在这里插入图片描述

当文本超出编辑窗口的宽度时,可以选择将文本换行,也可以选择将文本隐藏(可以在编辑器里面自行设置),但是不管哪种形式,在一个字符串里书写长文本总是不太美观。

当然,你可以多写几个 puts 函数,就像下面这样:
在这里插入图片描述

我不否认这种写法也比较美观,但是这里我要讲的是另外一种写法:
#include <stdio.h>
int main()
{
puts(
“我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,”
“父母就会满足,我们用“中国语言”来控制父母,”
“让父母做我们喜欢的事情。”
);
return 0;
}
在 puts 函数中,可以将一个较长的字符串分割成几个较短的字符串,这样会使得长文本的格式更加整齐。

注意,这只是形式上的分割,编译器在编译阶段会将它们合并为一个字符串,它们放在一块连续的内存中。

多个字符串并不一定非得换行,也可以将它们写在一行中,例如:
#include <stdio.h>
int main()
{
puts(“今天” “明天” “后天”);
return 0;
}

我们所说的 puts、printf,以及 fprintf、fputs 等与字符串输出有关的函数,都支持这种写法。

如果感觉不错请点赞哟!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没有bug队——加贝——Python 练习实例 37,38

目录 37.题目&#xff1a;对10个数进行排序。 Python sort()方法 语法 参数 返回值 Python sorted函数及用法 语法 返回值 38.题目&#xff1a;求一个3*3矩阵主对角线元素之和。 37.题目&#xff1a;对10个数进行排序。 程序分析&#xff1a;可以利用选择法&#xff…

C语言中的整数

整数是编程中常用的一种数据&#xff0c;C语言通常使用int来定义整数&#xff08;int 是 integer 的简写&#xff09;。 现代操作系统中&#xff0c;int 一般占用 4 个字节&#xff08;Byte&#xff09;的内存&#xff0c;共计 32 位&#xff08;Bit&#xff09;。如果不考虑正…

没有bug队——加贝——Python 39,40

目录 39.题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 40.题目&#xff1a;将一个数组逆序输出。 39.题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 程序分析…

C语言中的二进制、八进制和十六进制的表示

二进制数、八进制数和十六进制数的表示 一个数字默认就是十进制的&#xff0c;表示一个十进制数字不需要任何特殊的格式。但是&#xff0c;表示一个二进制、八进制或者十六进制数字就不一样了&#xff0c;为了和十进制数字区分开来&#xff0c;必须采用某种特殊的写法&#xf…

没有bug队——加贝——Python 41,42

41.题目&#xff1a;模仿静态变量的用法。 python中是不支持静态变量的&#xff0c;所以可以通过以下的方法来实现静态变量的功能&#xff1a; 代码1&#xff1a; class CTest(object):#python静态变量实现方法i__initNonedef __new__(cls,value):if cls.i__init is None:cl…

C语言中的正负数及其输出

在数学中&#xff0c;数字有正负之分。在C语言中也是一样&#xff0c;short、int、long 都可以带上正负号&#xff0c;示例 //负数 short a1 -10; short a2 -0x2dc9; //十六进制 //正数 int b1 10; int b2 0174; //八进制 int b3 22910; //负数和正数相加 long c (-9)…

没有bug队——加贝——Python 43,44

目录 43.题目&#xff1a;模仿静态变量(static)另一案例。 44 - Python 两个矩阵相加 43.题目&#xff1a;模仿静态变量(static)另一案例。 程序分析&#xff1a;演示一个python作用域使用方法 #43 class Num:nNum 1def inc(self):self.nNum 1print (nNum %d % self.nN…

数学建模学习笔记(一)——层次分析模型

1.模型简介 层次分析模型主要应用于综合评价类问题&#xff0c;例如&#xff1a;怎样购买最划算、怎样养殖才能获得最大经济效益等等。 2.下面使用一道例题来说明这个问题 问题&#xff1a;你想要购置一台个人电脑&#xff0c;考虑价格、性能等因素&#xff0c;如何做出决策…

没有bug队——加贝——Python 45,46

目录 45.题目&#xff1a;统计 1 到 100 之和。 46.题目&#xff1a;求输入数字的平方&#xff0c;如果平方运算后小于 50 则退出。 实现1 实现2 Python While 循环语句 跳过循环 无限循环 循环使用 else 语句 45.题目&#xff1a;统计 1 到 100 之和。 #45 tmp 0 for…

没有bug队——加贝——Python 47,48

目录 47.题目&#xff1a;两个变量值互换。 实现1 实现2 48.题目&#xff1a;数字比较。 47.题目&#xff1a;两个变量值互换。 实现1 a 10 b 20 print(x ,a ,y ,b) a,b b,a print(x ,a ,y ,b) 输出&#xff1a; 实现2 #47 def exchange(a,b):a,b b,areturn (a,…

Latex笔记(一)—— 复杂表格的制作

引言 表格是论文写作中的重要一环&#xff0c;尤其是较为复杂的三线表的制作。 在网上寻找了很久发现没有比较综合的解释方法&#xff0c;因此将查阅的关于复杂三线表的制作的资料总结成了一篇笔记。 由于笔记是用Latex写作的&#xff0c;因此这里只放上Latex生成的pdf的截图&…

C语言转义字符的使用

字符集&#xff08;Character Set&#xff09;为每个字符分配了唯一的编号&#xff0c;我们不妨将它称为编码值。在C语言中&#xff0c;一个字符除了可以用它的实体&#xff08;也就是真正的字符&#xff09;表示&#xff0c;还可以用编码值表示。这种使用编码值来间接地表示字…

数学建模学习笔记(二)——Topsis优劣解距离法

&#xff08;续上篇文章&#xff09;层次分析法的局限 上一篇文章中&#xff0c;层次分析法有这样的局限 评价决策层不能太多&#xff1b;数据是已知的的话&#xff0c;便无法使用层次分析法进行精确的分析评价&#xff1b; 因此&#xff0c;为对这些情况做出更为精准的分析…

没有bug队——加贝——Python 49,50

49.题目&#xff1a;使用lambda来创建匿名函数。 lambda函数 紧跟的是定义的自变量&#xff0c;因变量等&#xff0c;其后是函数 MAXIMUM lambda x,y : (x > y) * x (x < y) * y MINIMUM lambda x,y : (x > y) * y (x < y) * xif __name__ __main__:a 10…

没有bug队——加贝——Python 51,52

目录 知识点&#xff1a; 51.题目&#xff1a;学习使用按位与 & 。 52.题目&#xff1a;学习使用按位或 | 。 知识点&#xff1a; 运算符描述实例&按位与运算符&#xff1a;参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 …

数学建模学习笔记(三)——插值算法

插值算法简介 数据分析是在大数据时代下不可获取的一环&#xff0c;合理、全面地分析数据&#xff0c;能够使得决策者在决策时作出最为明智的决定。在数据分析过程中&#xff0c;常常可以使用插值算法来根据已知的数据估算出未知的数据&#xff0c;从而模拟产生一些新的值来满…

没有bug队——加贝——Python 53,54

目录 53.题目&#xff1a;学习使用按位异或 ^ 。 54.题目&#xff1a;取一个整数a从右端开始的4〜7位。 运算符描述实例&按位与运算符&#xff1a;参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 &#xff0c;二进制解释&#xf…

数学建模学习笔记(四)——拟合算法

文章目录拟合算法简介一个线性规划的例子最小二乘法求解最小二乘法拟合检验总结拟合算法简介 与插值算法不同&#xff0c;拟合算法的目的是得到一条确定的曲线&#xff1b;而插值是根据已有的数据来获得一系列新的“靠谱”的数据。插值要求曲线必须全部经过样本数据点&#xf…

没有bug队——加贝——Python 55,56

55.题目&#xff1a;学习使用按位取反~。 说明&#xff1a; 二进制数在内存中以补码的形式存储。 按位取反&#xff1a;二进制每一位取反&#xff0c;0 变 1&#xff0c;1 变 0。 最高位为符号位&#xff0c;正数的符号位为 0&#xff0c;负数为 1。 对正数来说&#xff0…

数学建模学习笔记(五)——相关系数以及假设检验

文章目录皮尔逊相关系数假设检验下面来看一个例子斯皮尔曼(spearman)相关系数注意皮尔逊相关系数 总体皮尔逊&#xff08;Pearson&#xff09;相关系数 如果有 A:{A1,A2,⋯,An}A:\{A_1, A_2, \cdots, A_n\}A:{A1​,A2​,⋯,An​} 和 Y:{Y1,Y2,⋯,Yn}Y:\{Y_1, Y_2, \cdots, Y_n\…