【从零开始的 C 语言笔记】第八篇-printf 介绍与应用

不怎麽重要的前言

上一篇我们介绍了与输入输出格式相关的语法,想必大家应该多少知道要怎麽使用了,如果有不了解可以多多测试呀!

接下来我们介绍常常使用的输出用函式printf吧!


列印字串?

不晓得大家还记不记得我们的「Hello World!」好朋友呢?虽然前面多多少少都有用到这个「printf();」函式,来列印一些结果,但大家对它应该还是很陌生吧,接下来我们来复习一下列印「Hello World!」跟三角形(**造型的直角三角形)的程序码吧!

  1. Hello World!
#include <stdio.h>

int main(){
    printf("Hello World!\n");
    
    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/20142565oFJQKV56Xd.png
2. 直角三角形

#include <stdio.h>

int main(){
    printf("*\n");
    printf("**\n");
    printf("***\n");
    printf("****\n");
    printf("*****\n");

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/20142565aXtXRrBolY.png

还记得我们前面第三篇说过,透过修改函式里「" "」内的东西就可以自由列印不同字串了,我们也用这个方式来列印三角形,因为在c语言中「字串」(一段文字,由很多的字元组成)必须使用「" "」包裹起来,程序才会知道这里不是特殊语法只是单纯的「字串」,也才能用printf函式来成功列印出来。

(备注:在c语言中「" "」、「' '」的使用是有差别的,被「" "」包裹的是字串,而被「' '」包裹的是字元。)

所以当我们要使用printf列印任何东西时,必须是以下的格式:

printf("我是任意的字串!");

然後整理一下上面的重点稍微图解:
https://ithelp.ithome.com.tw/upload/images/20211026/201425651hMxDSUNpM.png


正式使用printf

前面我们简单的介绍使用printf单纯列印字串时怎麽使用了,接下来我们来结合进第六篇的变数、第七篇的格式吧!

一般来说列印会有两种情况

  1. 只列印纯字串时
    https://ithelp.ithome.com.tw/upload/images/20211026/201425655FMMkKZRPv.png

  2. 列印时需要使用到变数、资料
    (1) 只需要单一变数

#include <stdio.h>

int main(){
    int data = 555;

    printf("%d\n", data);
    printf("your data: %d\n", data);
    printf("your data is %d.\n", data);
    printf("%d is your data.\n", data);

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/20142565QlXROnGucl.png

(2) 需要多个变数

#include <stdio.h>

int main(){
    int data1 = 111;
    float data2 = 222;
    char data3 = '3';

    printf("%d %f %c\n", data1, data2, data3);
    printf("your data: \"%d\".\"%f\".\"%c\"\n", data1, data2, data3);
    printf("your data are %d, %f and %c.\n", data1, data2, data3);
    printf("%d, %f and %c is your data.\n", data1, data2, data3);

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/20142565wVxCnzLnzn.png

(3) 直接输出资料

#include <stdio.h>

int main(){
    printf("%d %f %c %s\n", 11, 2.2, '3',"44");
    printf("your data: \"%d\".\"%f\".\"%c\".\"%s\"\n", 11, 2.2, '3',"44");
    printf("your data are %d, %f, %c and %s.\n", 11, 2.2, '3',"44");
    printf("%d, %f, %c and %s is your data.\n", 11, 2.2, '3',"44");

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/201425658RWZb3X6tx.png


printf小结

  1. 看完上面的例子我们可以知道,当输出结果包含变数或资料时,我们会在列印字串中加入第七篇学到的格式指令字,代替资料在列印结果中的位置,并且在後面用「,」分隔後补上要放入字串的资料内容。
printf("列印结果: %d\n", data);

https://ithelp.ithome.com.tw/upload/images/20211026/20142565Ewg6Jwn8Us.png

  1. 最後的列印结果时就会自动放入变数或资料了:
#include <stdio.h>

int main(){
    int data1 = 111;
    printf("列印结果: %d %s\n", data1, "data2");

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211026/20142565lOHwTEMgYQ.png

  1. 最後结果:
    https://ithelp.ithome.com.tw/upload/images/20211026/201425656HvjzCKsdW.png

看到这里大家了解这个printf了吗?虽然我们前面几篇在测试的时候,大致有展示给大家看怎麽使用,但想说把会用到的语法都先提过再来解释,大家应该会比较了解内容在说什麽,但千万还是别忘了多多练习呀!

下一篇我们来讲讲取得使用者输入的函式scanf!


<<:  【从零开始的 C 语言笔记】第七篇-格式指定字 & 特殊字元

>>:  盘点清查与检测扫描 - 安全性检测之弱点扫描

乔叔教 Elastic - 30 - Elasticsearch 的优化技巧 (4/4) - Shard 的最佳化管理

Elasticsearch 的优化技巧 系列文章索引 (1/4) - Indexing 索引效能优化...

【Day 23】JavaScript 条件(三元)运算子

条件运算子 是 JavaScript 中唯一需要三个运算元的运算子。 这个运算子接受两个运算元作为值...

快取机制 心得纪录

这几天听到一个新名词,eTag,我想说这究竟是什麽东西,要上高速公路了吗?、还是什麽特别的tag呢?...

Day 23: 元件原则 — 耦合性 (待改进中... )

「本章描述的依赖性管理度量,可以用来量测一个设计有多符合『好的依赖及抽象』模式。经验告诉我们,依赖...

[Day26] 透过GCP实作(2/4):进行前後端分离

在昨日的文章中,简单地向各位展示直接藉由Function抓取API 所能得到的架构会是何者 而今天...