C语言入门Class_4

目录

1、printf 函数

1.1基本用法:按照指定格式打印输出

1.2 \n 换行符

1.2.1  结尾使用

1.2.2 中间使用

1.3 %d %c %s 占位符

1.3.1 %d 十进制整数占位符

1.3.2 %c 字符占位符

1.3.3 %s字符串占位符

1.4 其他类型占位符

1.5.1 限定最小宽度

1.5.2 限定小数点

1.5.3 混合使用(既限制最小宽度,又限制位数)

1.5.4 字符串输出限定最大长度

PS:*的使用

1.5 占位符和参数数目的关系

2、scanf函数

2.1基本用法

2.2 %d %c %s 占位符

2.2.1 %d 整数占位符

2.2.2 %c 字符占位符

2.2.3 %s 字符串占位符

PS:%s 使用时的注意事项

2.4 多个输入

2.5 scanf的返回值

补充:

EOF是什么?

宏是什么?


1、printf 函数

1.1基本用法:按照指定格式打印输出

printf函数是标准库函数,是由print(打印)和format(格式化),意为按照指定的格式,在标准输出设备(终端、屏幕)上输出信息,在使用的时候注意需要定义头文件<stdio.h>,这个头文件在前面已经讲过,就不在赘述。因此printf函数最基本的语法结构为:

以打印Hello world为例,代码可以写成:

1.2 \n 换行符

1.2.1  结尾使用

从上面的输出结果我们,我们可以看到,打印结束以后,光标停在了world之后,下一次我们再让他打印的时候就会紧接着world以后打印,这样不利于我们分辨,比如我们想让他打印Hello world以后,再让他另起一行打印Hi,如果我们按照下面这种方法

结果时行不通的,这是我们就可以使用换行符

使用方法是在你要打印的末尾加上\n(在双引号里面加,不是外面),对上面的代码进行更改。

1.2.2 中间使用

在上面的例子中,在结尾使用,如果我们按照下面的代码进行打印,行得通吗?

运行以后,结果与第一种方法一模一样。

1.3 %d %c %s 占位符

占位符顾名思义就是占领位置的符号,前面的打印有个特征,我们想要打印的东西,在我们写下代码的时候已经确认了,就是双引号里面的东西,但是这种方法有很大的局限性:我们设想一种情况,如果,我们想要随机输入两个数,然后打印出结果,那该怎么办呢?每次的结果都不固定。这时我们就可以引入占位符,占位符帮结果占领位置,结果用一个变量来存储,这样就完美的实现了。

1.3.1 %d 十进制整数占位符

帮十进制数占领位置的占位符,我们可以这样使用:

当然了,双引号里面也可以一部分固定内容,另一部分用占位符代替,比如

还可以有多个占位符

但是有一些注意事项,请务必注意,保证%d 与后面的参数一一对应,数目一致,中间由逗号隔开。

运行结果:

我们看到这里可能觉得还是不智能,但是如何引入输入函数,效果就不一样了。

1.3.2 %c 字符占位符

同样的,字符也有占位符,请看下面的代码,

当然了,多个%c 占位符也能使用,例如:

同样的,%d  十进制整数占位符可以与%c 字符占位符混用

1.3.3 %s字符串占位符

同样的字符串也有占位符,请看下面的代码

多个字符串也能使用。

同样的,不同类型的占位符也能使用

1.4 其他类型占位符

%d 或 %i:十进制 整数

%o: 八进制

%x 或 %X: 十六进制整数

%u: 无符号整数

%f: 浮点数

%lf: 双精度浮点数

%a 或 %A: 十六进制浮点数

%c: 字符

%s: 字符串

%% :输出百分号

1.5 设定输出格式

前面已经讲过,printf 是按照指定格式输出,那可以设定的格式有哪几种呢

1.5.1 限定最小宽度

%+数字+d:限定十进制整数的输出长度

如果大于等于这个值,则不做任何处理

如果小于这个值,会在左边补,注意!!!不是右边

%数字+s:限定字符串的输出长度

如果大于等于这个值,则不做任何处理

如果小于这个值,会在左边补,注意!!!不是右边

%+数字+f

如果大于等于这个值,则不做任何处理,这里需要注意,浮点数默认后面是6位小数,即使你没写,也已经有了,小数点也算一位

如果小于这个值,会在左边补,注意!!!不是右边

1.5.2 限定小数点

在前面讲的时候,我们说过,%f后面默认小数点后有6位,但是如果我们不想这么多位,怎么限制呢

%+数字+  .   +f

请看这个例子

1.5.3 混合使用(既限制最小宽度,又限制位数)

1.5.4 字符串输出限定最大长度

%+ .  +数字+s

上面讲的是浮点数的输出可以限定位数,同样的字符串输出,也可以限定最大的长度,请看下面的例子

PS:*的使用

上面公式中的数字,我们还可以用*代替,然后后面输入相关的数字

1.5 常有+-号

当我们输出一个数的时候,如果是负号,会有-,但是如果是正数,则没有,请看下面的代码:

这个时候,我们只需要在%后面加+即可

1.5 占位符和参数数目的关系

n个占位符,n+1个参数,因为n个占位符后面需要n个参数,本身双引号里面还有一个参数,则是n+1

2、scanf函数

刚才我们在引入占位符的时候,举了一个例子,再来回顾一下:我们设想一种情况,如果,我们想要随机输入两个数,然后打印出结果,那该怎么办呢?每次的结果都不固定。这时我们就可以引入占位符,占位符帮结果占领位置,结果用一个变量来存储,这样就完美的实现了。在这句话中,我们说了,输入,那我们怎么输入呢,这个时候就要引入scanf函数。

2.1基本用法

scanf 是 C 语言中用于从标准输入(通常是键盘)读取输入数据的函数。它通过使用格式说明符来解析输入,将数据存储到指定的变量中。在使用的时候注意需要定义头文件<stdio.h>。

请看这个代码:

注意:

scanf 使用 %d 格式说明符来读取一个整数,并将它存储到m 变量中。

& 运算符用于获取变量的地址。

执行以后,等待用户输入

输入以后代码接着执行,程序结束

2.2 %d %c %s 占位符

2.2.1 %d 整数占位符

2.2.2 %c 字符占位符

如果我们输入的是字符串,会出现什么效果

会将字符串的第一个字符存入变量

如果我们输入的是空白字符会怎么样

输入空白字符,点enter

打印的也是空白字符,即使后面还有非空白字符打印的也是空白字符

如果我们想要%c忽略空白字符,只需要在%c后面加一个空格,这样所有的空格都会被忽略

2.2.3 %s 字符串占位符

我们来看一下基本用法:

如果我们输入空格是什么情况

我们会发现,终端一直在等待输入,并没有识别空白字符

同样的,我们输入完空格以后再输入字符,他会跳过空格,里面存入后面我们输入的字符串

他的存入规则是:从第一个非空白字符开始读入,直到遇到空白字符为止

PS:%s 使用时的注意事项

scanf在将字符串读入字符数组的时候,不会检测字符串是否超过了数组的长度,所以在存储的时候可能会出现放不下的情况。比如

点击enter

出错!

这个时候我们应该指定读入的最大字符串长度,方法是

%+数字+s

这个时候就不出问题

2.3 其他类型占位符

%f: 读取一个浮点数

%lf: 读取一个双精度浮点数

%u: 读取一个无符号整数。

%x%X: 读取一个十六进制整数。

%o: 读取一个八进制整数

2.4 多个输入

我们来看下面的代码

其实由于scanf 对于字符串,整型,浮点型都是忽略空格、换行、制表符的(字符不忽略),所以分行输入也不影响结果:

2.5 scanf的返回值

scanf 函数的返回值是成功读取和赋值的参数的数量。如果返回值小于提供的参数数量,则可能发生输入匹配失败。

成功读取的情况

读取中途失败,或者用ctrl +Z 强制结束

a不是浮点数,读取失败,scanf终止,不会继续读下一个,无论后一个是否输入正确

第一个就读取失败,返回值为0

这个时候,没有一个被读取

如果在成功读取之前发生读取错误,比如直接跳过,这个时候返回值是EOF

补充:

EOF是什么?

EOF 是 C 语言中的一个宏,代表 "End of File",表示文件结束标志。在文件输入/输出中,EOF 用于指示已到达文件的末尾,无法读取更多的数据。

在 C 中,EOF 是一个负整数,通常被定义为 -1。在标准输入中(比如键盘输入)和标准输出中,当用户按下特定的组合键(例如 Ctrl+D 或 Ctrl+Z)时,系统会发送 EOF 到程序,表示输入结束。

EOF 在文件输入/输出函数中常用于判断是否已到达文件末尾。

宏是什么?

在计算机编程中,宏(Macro)通常是一种由预处理器处理的代码片段。预处理器是编译过程中的一部分,它在实际编译之前对源代码进行处理。宏是一种用于简化代码书写和提高代码重用性的机制。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想学习C语言,即使你没有计算机编程的基础,也不必担心。有一些简单的步骤可以帮助你入门。首先,你可以从了解C语言的基础知识开始。有一些介绍C语言基础知识的资料可以帮助你大致了解C语言的特点和用法。接下来,你需要选择一个合适的开发环境来编写和运行C语言程序。一个常见的选择是使用编译器,例如Dev C++或者Visual Studio 2019。然后,你可以尝试编写你的第一个C语言程序。这个程序可以非常简单,比如打印一句话在屏幕上。通过编写和运行这个程序,你可以开始对C语言的语法和结构有一些实际的了解[3]。从这个起点开始,你可以继续学习更多的C语言知识,并挑战更复杂的编程任务。在学习过程中,你可以阅读教材、参考文档、查找在线资源或参加编程课程来加深你的理解和技能。记住,坚持实践是学习编程的关键。通过不断地编写和调试程序,你会逐渐掌握C语言的基础,并逐渐提升自己的编程能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C语言初阶——手把手教零基础/新手入门(万字心得笔记)](https://blog.csdn.net/m0_63312733/article/details/122145605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值