【从零开始的 C 语言笔记】第十篇-scanf 介绍 & 结合printf的应用 (2)

不怎么重要的前言

上一篇我们介绍了scanf的用法,虽然可能会有点小混乱,但应该不至于太难理解?

接下来我们来釐清一下观念、帮scanf做个小结,最后有个小作业可以试试看喔!


scanf & printf的差异

看看下面的程式码,关于printf的部分我们就不重複再提,可以参考看看第八篇的内容,比较不一样的就是当中出现了「scanf();」函式来读取输入,而在读取输入前我放了一行提示输入字串,方便提醒此时应该要输入数字。

printf("plz input a number: ");scanf("%d", &data);

可以看到scanf的语法跟printf在表面上看是有些类似的,差别在于scanf时变数前须加上「&」,因为scanf用来取得使用者的输入后,再存入变数所在的地址,这就是为什么要在后面的变数前加上「&」,而加上「&」的行为我们称为「取址」,顾名思义是用来取得该资料的存放地址。

所以意义上差别有点像下图这样:

http://img2.58codes.com/2024/20142565iljCTVE5gd.png


scanf小结

虽然跟printf语法有点像,但scanf后方补上的是变数地址(即「&变数名称」的写法),并可跟printf一样一次使用多的变数(可以不同资料型态),只要以「,」隔开。
#include <stdio.h>int main(){    int data1;    char data2;    float data3;    printf("plz input int.char.float: ");    scanf("%d %c %f", &data1, &data2, &data3);    printf("your data: %d %c %f\n", data1, data2, data3);    return 0;}

http://img2.58codes.com/2024/20142565XQv3WOmMhw.png

scanf的预设分割符就是空白键与enter键,所以当有多个输入时可以用空白键分开并一次输入内容。
#include <stdio.h>int main(){    int data1, data2, data3;    printf("plz input 3 int: ");    scanf("%d%d%d", &data1, &data2, &data3);    printf("your data: %d %d %d\n", data1, data2, data3);    return 0;}

http://img2.58codes.com/2024/20142565v7aseo44dD.png
(备注:若要限制读取符号,让其自动分割可以参考第七篇格式指令字的第4点)

可以在输入时指定为特殊符号分割的格式
#include <stdio.h>int main(){    int data1, data2, data3;    printf("plz input 3 int: ");    scanf("%d.%d.%d", &data1, &data2, &data3);    printf("your data: %d %d %d\n", data1, data2, data3);    return 0;}

http://img2.58codes.com/2024/201425655XVwGD7IiB.png


来实际运用看看吧!

彻底介绍完scanf跟printf,不知道大家吸收了多少呢,所以我们来尝试做个可以输入两个int,然后自动加总输入并输出结果的程式吧!

结果要长得像以下这样,大家来试试看吧:
http://img2.58codes.com/2024/20142565fzgvu0sgsr.png


不晓得现在大家有没有比较了解输入输出的方法了呢,记得还是要多多尝试才能更加熟悉喔!

下一篇我们来谈谈指标是什么吧!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章