粉丝135获赞521

好,同学们,那我们上个小节的给大家讲了 scanf 函数的用法啊,那我们在用的过程中发现啊,有一个小小的问题,就是 scanf 这个函数不安全的时候,他会报一个错误信息出来啊,报一个错误信息出来。 上一节课呢,我们给大家简单的进行了解决之后啊,这个小节给大家专门讲一下 vs 上如果提示 scaf 函数不安全,该怎么去解决,当然呢,其实不仅仅会提示 scaf 函数不安全,还有一些其他函数也可能会提示不安全,那这一类问题都该怎么解决呢?接下来我们就给大家讲一下这个问题, 那在这个地方讲之前呢,我们先把这个问题复现一下啊,就说当我们在这个地方写一个代码的时候,哎,我们用 c 元写,比如说我们在这个地方的写上一个主函数啊,在这个地方的里面啊,使用了一个啊变量,对吧?啊,比如说硬能源定一个变量啊,然后呢,我想给这个 n 元变量里面 啊输入一个值,那这个地方我们可能使用 scaff, 对不对啊? scaff 呢,输入一个值啊,假设是整数啊,那这个时候呢,放到 n 元目里面,所以我们这儿确定是 n 元目,那输入进去之后呢,我想把它打印出来看一下,对吧?那这个时候我们就给上一个,哎啊, printf 啊, n m 等于百分号 d, 斜杠逗号 n m, 我想把它打印出来啊,当我们在这地方使用了 scarf 和 printf 这样函数的时候,我们得包含对应的头文件啊,我们在前面啊,包含上这个头文件井号 include, 包含 s, t, d, l, d, h 这个头文件就可以了。 好了,到这我们这个代码就写完了,当我们这个代码想跑起来的时候呢,我可以按键盘上的 ctrl 加上一个 f 五这个快捷键,对吧? f 五这个快捷键, f 五啊,那这个时候代码就可以编一链接运行啊,我们先试一下 ctrl 加 f 五,当去编 听链接预习的时候,大家看就看到了这个错误信息啊,他说 error 错误啊,啊,他说 scaf 啊,这个函数或者变量呢? maybe on safe, 他这也提示我们说这个函数不安全啊,他后面又提示什么呢?说考虑使用 scaf 杠 s 呢, in stand 去替换 啊,那很多同学呢,看到这儿之后说,哎,那就使用 scaff 杠 s 吗?啊,在这里我给大家提示一下 scaff 这个函数啊,是 v s 这个编音器提供给你的函数,它不是 c 引员提供的。而如果你在你的代码里面使用了 scaff 杠 s 这个函数的话,那你这个代码只能在 v s 这个编音器上啊, i d e 里面能够跑得过去。 在其他的一些变异器,比如说 d, c, c 啊, c 浪这样的一些变异器啊,他跑不过去了,这就使得你这个代码呢去失去了可移植性啊,或者说降低了可移植性。 所以在我们初学 c 元的时候,我建议大家还是先使用 scaf 这个函数啊,不要呢,哎,先直接就换成 scaf go s 对吧,这个不太好,那怎么解决这个问题呢?后面这提示了 two disable, 就是让这个描述失效啊, disd scraps, 让这个描述失效的话,请使用它。使用谁呢?后面这个符号, 这个符号啊,在点之前啊,我们拷贝袋啊,我们把这个符号里拷贝一份,我选中他,大家注意看,像我这样选中他,对吧?然后呢复制一份, 那我怎么用它呢啊?用的方法也很简单,就是在我这个代码的第一行啊,注意加上啊进号的范啊,这样的一个方式,哎,啊,进号就说,哎,我们这拷贝的有点问题,对吧,我只拷贝这一个小的部分就可以了啊, 这个点我也不要啊,我拷贝一份,然后呢井盒的饭,哎,放一个他,然后写个一就可以了,但我这样去搞的 时候,大家注意这个代码就可以跑起来了, ctrl 加 f, 再次变异,立即执行,你会发现代码运行起来了,下面这个地方没有任何的错误,我这输入一个一百,哎,你看结果输出的是 n m 等于一百,哎,说明我们解决了这个问题, 注意,这就是我要给大家讲的一个解决方法啊,也是我们这的解决方法一,一定要在当前的点 c 文件的第一行,注意啊,一定要强调第一行,在第一行加上这么一句话就可以了啊,这是一种解决办法, 当这种解决办法呢,有一个小小的问题,就是以后我们再创建的一个工程,一个文件啊,一,一个点 c 文件里面再使用啊, skf 这个函数的时候,他依然会爆这个错误,你依然要加这么一句话,对不对啊?感觉比较麻烦, 那有没有办法一劳永逸呢?哎,这个时候呢,我们就给大家讲一下第二种方法,解决办法二,第二种解决办法是怎么解决的呢?说,哎, 我们说每一个啊,版本的 vs 安装之后啊,比如说 vs 二零一九啊, vs 二零二呀,安装之后啊,你的电脑号都会生成一个叫 newc 加加 filed decpp 的文件,这个文件呢是固定的, 这个文件有什么用呢?其实当你在这个地方原文件这新建啊项目的时候啊,添加新建项的时候啊,比如说你选了 c 加文件新建文件的时候,其实拷贝的都是我刚刚这样说的, newc 加加 fil 点 cpb 的这个文件, 所以如果我们能找到这个文件,并在这个文件里面啊,这的他的第一行默认加入这句话的话,同志们,那这个时候呢,以后你生成的所有的这种点 c 文件里面,自动就在他的第一行就加入这样一句话,那是不是就 a 非常的方便了,一劳永逸了。以后啊,只要加入这一句话,你在大码里边放心大胆的使用思感 f 就可以了,所以怎么办呢?我们首先要在我们的电脑上找到这个文件啊,那找的时候呢,你可以在电脑上去搜索啊,通过搜索的方式去搜索,对吧?我这地方呢啊,在我的电脑上装了一个工具啊,叫 everything, 这个工具呢用起来的非常非常的方便,我建议大家也可以在自己的电脑上装这么一个工具啊,如果需要安装包的话,也可以在评论区留言啊,我给大家发一份都是可以的。那我们点这个工具啊,打开之后,在这个地方你就可以去搜索,搜什么呢?我搜一个 new 啊, c 加加 fail 点 c p p 这个文件, 那我这搜到了好几个啊,大家注意啊,其实是因为我拷贝了几分啊,但是我这个地方只关只关心我今天用的 vs 二零二二底下这个文件,大家看搜到这个文件的时候,这个文件的大小是零 k b 啊,说明这里面什么都没有,所以呢这个时候我点中它之后右击鼠标,这个地方叫打开路径,我找到 这个文件,我想在这个文件底下啊里面加上一句话,那怎么办呢?哎,这个地方我想到的办法就是我先打开啊,打开它啊,打开方式,我可以选记事本啊,我可以选其他的一些方式啊,我这地方假设我们就选记事本吧 啊,如果这没有记事本的话,可以选择啊其他应用,对吧?那这里面进来之后再去在那找一个记事本就可以了,更多应用里面去也可以找,对吧?啊?找不到的话, 当然你也可以有其他的一些,你的这个编编编辑器啊,来编译啊,就打开啊编辑就可以了,我这地方选技文好,大家注意,当我打开之后里面什么都没有,所以我要给他加一句话,就是这句话,好,我呢拷贝一份,然后呢放进去, 我去保存,哎,当我去保存的时候,他提示我,哎,这个地方是不是另存为对吧?我说保存啊,他其实在当前这个路径底下去保存啊,刚刚这个路径对吧?啊?这个路径底下去保存啊,他说要不要替换尿,我说是的,但我当 当我真的去替换的时候,大家注意,他说我没有权限啊,你没有权限打开该文件,请向文件的所有者和管理者申请申请权限啊 啊,说明我当前的编辑他的时候说明有权限的,那怎么办呢啊?有一个很简单的办法啊,给大家说一下,那我暂时先把它关掉啊,我不保不保存,对吧?然后还是在这个路基底下,我把这个文件呢拷贝一份啊,我按 ctrl c 啊拷贝一份放到我的桌面上啊,我的桌面本来原来就有一份啊,我现在在拷贝过来一份,对吧?啊,这个地方呢,我放在这 放这之后在桌面去修改的时候基本上就有权限了啊,那在这地方大家注意啊,我们这打开,对吧,然后这地方用计时板打开,这个时候呢,你再把刚刚的这句话啊拷贝一份放进去就可以了 啊,我拷贝一份,对吧?啊?放这,然后呢 ctrl s 保存一下,当你保存了之后啊,同学们注意,那这个时候呢,再把这个文件呢关 尿,然后还是啊再来到桌面上拷贝这个文件,大家注意啊,这个文件目前在桌面上放着呢,我再送回刚刚我的这个录集地下这个还是零 kb 吗?对,说明没有东西吗?对吧?我 ctrl c 放进去替换掉这个文件,这个时候大家注意啊,继续啊,大家可以看到我这这个文件就变成一 kb 了, 而当我这新建了这个文件之后,哎,有了这个文件之后啊,然后我在我的这个项目里边原文件添加新建项的时候,同学们注意点一下啊,这里呢大家注意啊,就可就可以看到我们这是不是出现了一个 c 加文件,当然注意啊,在 vs 二零二二的时候,默认情况下它是这样子的, 末日情况下,当你啊,比如说我们这地方重来啊,原文件添加新建像的时候,末日情况下是这样一个界面,这个界面你直接把它改成一个什么呢?比如说这给上一个什么 a, d, d 点 c, 你去点添加的时候, 它里面是不会加这句话的,同学们,你必须点开这个显示所有模板,然后选中 c 加加,然后这个地方给上一个什么呢? a, d, d, d, a, c 啊,这个时候同学们注意新建的文件啊,才里边会默认加二这句话的 啊,当你以紧凑的形式,这是解决不了的啊,同学们,必须啊,写这个啊,点开啊,点开,对吧,然后写出所有模板,然后这个地方你再给写上 add 点 c 的时候同意吗?我们再试一下,点击添加,你看这个第一行是不是就加上了,以后你创作的所有的新的文件里面都有这句话, 这样你在他的下面去写代码的时候,你在你的代码里面就可以放心大胆的使用这个 scaf 函数了,对不对啊?所以给大家简单的说一下,这是我们的啊,方法二啊,我们的方法二,给大家简单的说一下,那除了这种方法之外呢?有的人说,老师,那还有没有其他的方法 啊?单号有的啊,那这个地方的方法很多,我再给大家介绍一种,就是在你的代码里面啊,把这个啊四九九六为警告编号的这个警告的给他消除掉,或者说让他失效,怎么做呢?大家注意啊,为什么是四九九六呢啊?其实大家注意啊,如果你留意我们上面这个错误信息的话, 错误信息的这个编号是 c 四九九六的啊,是 c 四九九六的,对吧?那这个时候呢,我们让这个警告失效,怎么办呢?哎,这个时候我们大家注意假设啊,我们再来到这个文件里面,我们假设上面的没有这个行,这个行代码,对吧?然后怎么办呢?啊?我就可以在前面这个地方警号,然后呢写上 prank 啊, prank 嘛,对吧?然后呢是 warning 啊,啊,警告,对吧?然后括号,然后写个 disable, disable a, b, l, e, 对吧?然后冒号啊,这个地方给上一个四九九 六啊,四九九六,这样的话我们就会让这个编号为四九九六的这个警告呢失效。好,当我们再次来编译这个代码的时候,大家注意,你看代码均匀吸起来了,我们可以这个地方输入二排,然后走起来。 哎,有的人说,老师,那是不是因为你在这里面加了这句话导致的呀?我也可以把它删掉了,大家注意删掉的时候你会发现没有了吧,那这个时候你再去编你代码的时候还是可以的啊,所以这个地方大家请注意,这样的话,我们是不是也能解决这个问题啊?当然这个方法三和方法一其实是一样的,就是你每次想要啊消除一个警告的时候,你都得加这句话, 但是像我们哎方法二的这种方法的话,我们就是啊,在每个文件里面我默认加入这句话的话,以后就可以放心大胆的使用了,对不对?所以三种方法里面我更推荐的是方法二,一劳永逸啊,一次性解决问题,对吧?彻底解决问题,当然我这呢还想给大家 做一个提醒啊,就说啊这个,呃,刚刚的这种关于啊 scaf 函数的这个警告呢,仅仅是在 vs 这个编辑而会有啊,在一些其他的编辑而可能没有类似的这种警告,所以我们刚刚讲的这些方法仅仅适用于 vs 这种 id 这种开发环境上的一个 啊,配置和解决问题的方法,对不对啊?给大家说一下。当然其实在啊 vs 的提示上啊,不仅仅会提示四个 f 不安全,他还会提醒什么 string company 啊, string c, e, t 他们也不安全,那解决的方法呢?跟这个一样,这个这个 啊解决啊,就比如说大家加入这样一句话之后呢,以后像这样的一些警告也就不会报错了啊,也就不会报出来,对不对?好,这个时候就解决了,我们在 vs 上总是提醒某个函数不安全的这种啊问题。 好,那么如果听懂这里,大家听懂的话啊,大家可以给鹏哥点个小红心,对吧?那我们这个小节暂时讲到这里,下个小节呢,我们继续。

正道德光 嗨,朋友们大家好,我是老徐, 今天我们来继续学习控制台的输入输出啊,上一节我们已经学习了输出,今天我们来学习输入输入就是我们手动去输入我们的一些 嗯,参数或者是指令,告诉计算机啊,比如我输入原的半径,然后让他把我计算原的面积啊, 啊,看我这里,我这里就是一个计算员面积的程序啊,很简单对不对?拍拍,我已经说好了,对,然后这个面料是保存半 的变量啊,现在我给他负责零。这个是计算面积的变量啊,看到没有?公式是拍乘以 r, 乘以 r 就是拍 r 的平方啊,就是这个是面积计算公式。没错啊,现在我们需要去让用户,也就是我们自己 来手动输入这个半径的大小,如果不输入的话只能写死,每次改程序是很麻烦。现在这样子的话,我只只要运行程序,他就会让我输入,只要运行程序就会让我输入啊,实际程序上也是这样子的。 输入这里用的是 scanfer, 那我们打印输出用的是 pentforpenfer 啊,那输入跟输出来其实很相像啊,看到没有?都有个百分号啊,都是用百分号做转印,告诉他要输入什么什么东西 啊,百分号百分号啊,看到没有?都百分号。后面这些东西也有打印的,基本上是类似的,如果是福点数进 f, 如果是整数就百分之低啊,整数就是百分之低。制服啊,单个制服就 abcd, 单个制服是百分之 c, 如果是支付串啊,很长的一句话,那就百分之 s 啊,还可以百分之。什么叉对不对?百分叉,石榴精制对不对?那一般情况下我们出百分之第一,百分之 f 啊, 来后面要注意的地方,中间这些都是一样的。中间这些是吧?这里有有几个摆放号,这里后面就写几个啊,这些都是一样的,比如说这里有一个在后面写一个,比如说我有两个的话,我有两个的话后面也要写,你看也要写两个啊,你看我要写两个,对不对?要写两个。 好,唯一要注意的就是后面这个参数,你看我们打印出租的时候是直接用变量名,如果是思路是肝火,前面加个这个,看到没有这个符号啊,这个后面会去讲,在学后面的地方会讲这个叫地址啊,举例子学他的例子, 因为我们的变量在我们的计算机里面创建之后之后有一份地址,也就是我们 在计算机里面有很多很多的地址标号,就像我的门牌号一样,变量在这里定义好以后就会有一个,给他分配一个门牌号啊,我们要把这个门牌号拿出来,往门牌号里面填东西啊,把门牌号拿出来啊,对不对?这样现在就不用管了,这个 这个地方有点不一样啊,要千万记得这个符号啊,这个符号非常的重要。好,我们现在 看一下程序运行怎么样。好,我们先来运行一下,有个错误,错误是什么哦?这里是逗号啊,对不对?这个是逗号, 程序有时候会错了啊,请输入什么什么半径啊?我现在出一个三按一个按一个回车 n 键灯啊,出来了是不是程序就出来了?看到没有?程序出来了哦,这个要注意要注意啊, 如果输入输入一个,那先叫我按 table, 看到没有空格键或 table 键,然后我再按一个三,他会怎么样?后面我又按空格,哎,看到没有忽略空格和 table 再来一次, 哎,我写了很多空格 top 我再按个三十四。哦三吧三十四吧。再来一个啊啊啊 table table table 啊,现在都没反应啊。按回声看到没有。他的半斤是三十四啊他取出来的是三十四, 也就是对于百分之低或者是百分之 f 这些东西或者百分之 s 来说开始的空格和 tube 都会被忽略啊。 如果我直接按个回车会怎么样?这里什么都不输入你觉得会怎么样啊。没用,看见没有他一定会等到。第一个不是空格不是 太薄的东西或者是不是回车一定要有输入啊。做个字母进去看一下做字 他就相当于识别。哎,发现他是零零,看到没有。是不是啊。注意这个函数。这个函数啊那我可以他在前面加一个加空格啊。在前面加空格看到没有 啊。前面加空格没什么影响啊。看我我不说他有影响。没有啊。没什么影响,他反正都会把前面的空格固定掉。但是如果他在后面加个空格 啊,现在我再输入一下三有反应吗? 什么都没反应。看到没有怎么搞都搞不回来。现在这个时候怎么办。 这个的意思就是在这个 输入之后他需要寻找不是空格的东西。后面加一个和加多个都是一样的啊。空格或者是 table 或者是回车都没用他一定要找到一个不是这三个之类的, 就是既不是胎宝也不是空格也不是回车一定要找到一个这样的符号,你看 我现在直接按三,看见没有,回不去回不去。你看空格 table 没用,我说按个字母啊,按个注字看是不是一定要不是这三个之类啊? table 空格回车。 那我们今天就先学习到这里, 我们下次再见,好不好?关注老徐,拜拜。

欢迎回到 c 语言编程部门,本期题目是用 skyf 砍数输入字不转,那么首先打开代码编辑器,新建一个原文件,命名为输入字不转点 c, 我先写上基本的成绩框架,然后呢我们来写主要内容。首先我们声明一个字符类型的数组看空格 命名为内容量设定为三十,我们使用它来存储即将有用户输入的支付券。首先我们使用 prine f 这个函数向屏幕输入一个提示信息,你叫什么名字, 然后呢再使用 skin f 这个函数读取用户的输入,他的第一个三十呢,也是一个格式化的支付串,那么我们都选是支付串,支付串的格式转换说明服务是百分之二十。那么由于我们这里的支付数组容量是三十,最后一个字符呢, 要留给字母上的结束符反斜杠铃,所以它的有效空间是二十九个,所以我们最多呢也只读二十九个字符,将这个二字写在这个字符 s 前面,那么 stf 就砍成了,他会从左起第一个非功字符开始读取。 那么什么时候结束呢?就是遇到第一个空字符,或者是到了这个宽度二十九的位置,他就会结束。那么接下来第二个算数呢,就是用来保存这个输入的字辅数的变量名称。 然后呢我们再次使用,不论你在函数向屏幕输下我们刚才读的内容,做一个对照,我们打招呼,你好。然后呢是自福顺的格式转化寿命服百分之 s, 看好。那么第二项呢,就是用来替换这个格式转化寿命服百分之五 s 的自负数的变量名称, 那么代码呢?我们就写完了,按 ctrl 加 s 保存一下,然后来到控制台,我们的原代码就在这个名下保存着,我们使用这个命令编意并运行。你说首先说出提示信息,你叫什么名字?那么 stf 呢?它会从左起第一个非公字号开始读取,所以左边呢, 有多余的空格或者水平指标符他都会忽略。从第一个非公字符开始,那么注入詹姆斯, 后面空格或者回车也都是空字符,他就会结束。那么这个位置呢?很明显还没有到二十九字符,所以呢,他是由于先碰到了空字符,结束了读取,那么读了三个字符,詹姆斯,那么回车,他说出你好,詹姆斯。

每天五分钟学会 c 加加,今天我们来了解一个干 f 返回值的一个应用。我们先看题目, 输入一些整数,求出最小最大平均值,求最小值,最大值平均值,这个很方便 输入一些整数,这个整数,一些整数是什么意思呢?到底是两个、三个、四个?不知道。这个时候我们需要用到干 f, 他的有会有一个返回值,返回值 会返回他输入的数量,那我们通过这个来判断,用一个,我要一句来 解决这个问题,那我接下来看题目吧,看看吧,先出出实话 初始化呢,先定一定一,这初始化,那肯定会有一些输入, 输入之后,输入之后这个 n 就等于一了,最小值,最大值,如果只有一个的情况下,最小值最大值,何他都是等于刚刚输入的这个东西, 剩下来的呢?那我做一个这个输的循环,我要,然后判断 复到这个里面去,如果他等于一的情况下,那说明还要继续做,如果不等于一的情况下,那说明没有数 和。这个是 大鱼,先小鱼吧,先求这样子,如果小鱼这样子的话, 然后最下,最后生下来的时候把病出来。 小数点和两位 最大的责任,最大的责任 平均数,平均数还是出一块小数点后两位呢?这个要转换一下,微信转换一下,转换成 flow 图形,变音圆形一下,看一下, 我还记得这里面的是一二三四五,一五 一二三四五,这个输入怎么结束呢?这个情况下你就是按一个回程,是按咖啡剂 再回升,回率就是一步三点六,这说明我们输入的是正确的。 好,我们看一下这里面涉及到的一些知识点, 是干 f 函数的返回值,那我可以通过这个 vs 干 f 等于一来判断输入有没有结束,如果等于一的情况下说明有输入,那要用来去处理这个输入值,那这这个题目里面我们是用来去 调整最大最小字,还有平均数求和那个和等于多少标准输入的。是怎么来结束输入方式呢?像我们这个题目里面说一些 整数,怎么什么时候想到结束了呢?输完了按个回车, 再按抗绝技,再按回测,就表示输入结束,还刺激了一个连续复制的情况下,我们取第一位的时候,最小字最大之和他都等于是刚刚输入的那个字这个里面,所以可以用连续复制 初始化方法。如果你像我们这个题目里面,如果你 因为我们可以预知到我们马上就要对他进行处施法,所以我们不进行处施法。否则如果 变量没有进行初始化的话,你前面定义一个变量在很后面很后面才用到,那可能会容易会产生他的 bug, 所以一般我们会要要求在这个时候去把这个变量初始化做掉。那像我们这里面,我们 这里有五个变量啊, x 输入的时候就给他出石化了, n 等于也是输入局给他出示划后面的,这靠的很近呢,你可以这样子,先不出示划,你马上就要进行出示划,就相当于换了一行一样,把定义跟出示划换行做。 今天我们就是先学习了一个啊干 f 的一个应用,判断他的输入数量,然后能够解决这种不确定输入数,嗯,还有一个连续复制, 还有一个输入的是怎么结束?如果他是到放到一个一直在等待的这个循环里面去。好,今天我们大概就先聊这么多啊,谢谢大家。

大家好,咱们这节视频呢,给大家介绍一下整形变量的输入,那么这个输入呢,它是一个什么样的功能呢?就是我们正常呢定义了这么一个变量,那么这个变量 a 和 b 的值呢?就固定了,为什么呢?因为我这个代码呢是固定的。 记者说下面呢,对我们这个变量精重新的复制了,比如说重新复制一个五,那么对于这行代码来说,他也是固定的,也是死的了,对吧?因为这个代码本身就是, 哎,这样了,他永远变不了,那么我们这个输入的这样的一个功能呢?哎,就是呢,在我们程序的运行过程当中,我们可以呢在指定的啊,或者说在需求的位置呢去想这个输入函数,那么在此位置呢,我们可以呢在控制台上呢去输入任意自己想要输入的这个啊整数, 这个整数呢就相当于在程序的运行过程当中动态的去输入了,而且呢这个输入的值呢是随时可以变的,对吧?哎,就 就是我此时呢,我这次运行了,我想输入二六,我下一次运行了,我想输入八九,哎,那么我们这个程序呢,是不是通过这样的一个输入的功能,就让他的数据啊变得更加的灵活了,对吧?也让我们这个程序呢可以处理更多的数据了,对吧?哎,如果没有这样的一个输入呢,那么他就啊是这么一个死的了,对吧? 好,那咱们就看一下,呃,这个函数怎么去用啊?首先这个函数的名字呢叫做死看府啊,那咱们把这个直接给大家写一下啊,咱们写的这个,呃,功能是这样的,首先呢定义两个变量哈, 然后呢我们普润乃夫去输出一下这两个边量的初始值,然后呢我们去调用词看部函数呢去,呃,对这个边量进行输入,输入完了呢,我们再输出一下我们这个输入后的值哈,这就是这么几行代码,也是非常的简单,大家呢可以自己写一下,也可以啊,跟着我写一下, 哎,输入钱的值 百分之 d 啊,然后呢 b 百分之 d 换行输入 a 和 b 的值啊,这是输出,哎,这是我们输入前的值,然后紧接着我们就用死看法来输, 那么 stcove 这个函数的他的参数填什么呢?哎,就填我们这个对应,呃,要输入变量类型的这样的一个格说明符就可以了,我输入的是两个印,他所以说我就会用两个百分之 d 啊, 哎,百分之第,那么我们死看服里边呢,什么都不要加啊,就去加上这个格式说明服就可以了,别的东西什么都不想写,你像我们普润的 f 呢,他这个双引号里边想加什么加什么,对吧,只要是合法的这个字服,你想想怎么加就怎么加,但是我死看服这个呢,不行, 哎,我们呢啊,现在呢就就记住啊,就是单纯的想这样的一个说明服就可以了,咱们下节视频呢,告诉大家,我这里边加了一堆字符,加一些分隔符,哎,那时候怎么去用啊, 哎,然后紧接着呢就是他输入的这个变量啊,必须放这个变量的地址,哎,这块呢必须放变量的地址, 这个边亮地址取地址,咱们上一节视频讲的对吧,哎,他呢就是为这节的 stcouch 呢,进行这么一个铺垫啊,一定要放取地址,放别的呢,都出错啊,记住这一点啊,好,这个写完了 之后呢,我们再输出一下输入后的值啊, 输入后啊,好,今天我们先变异啊,看一下我们有什么问题, 好,出了一个错误,对吧?这个错误是什么错误呢?他说 skelf 啊,这个函数呢,我不安全,对吧?就 skelf 这个东西不安全,考虑使用 skev 杠 s 呢就进行一个替换。 好,那就是大家呢,遇到我们这些错误的时候,一定要读我们编辑的这个提示啊,虽然说有时候呢他的这个提示呢不是很精确,甚至说这个提示呢你读不懂,但是大多数的情况下他的提示呢都是非常的完美的 啊,明白吧,所以说我们第一步呢是考虑使用 stcaff 杠 s 呢去代替,那么就能够去解决掉这个问题了啊,杠 s 下划线哈,下划线,杠 s 呢,这个一定要切换成英文的输入法哈,中文的输入法呢,输不出来,这个下划线 好,这呢就是啊,这个解决方案啊,那么这个解决方案的话呢,是一个什么样的原理哈,就是我们这个死看府啊,这个函数本身呢是什么?是老版本的死看府,也就是在我们这个 c 元啊,诞生之初呢,就有这个函数,他属于老版本的 skim。 杠 s 这个版本呢是属于新版本的 skim 函数啊,那么这个杠 s 这边这个,呃,新版本的函数呢,在 cu 九标准呢提出来的哎,那么在 cu 九标准的时候呢,这个函数呢?呃,老版本的函数呢是允许使用的,也就是说我们使用 scap 这函数呢,顶多出现一个警告, 对吧?那么在这个 c 十一标准呢,哈,这个标准呢就比较严格了哈,他呢就把我们老版本的呢直接蕊目了, 就是,哎,不让去使用了,只要你使用这个老版本的就直接报错,他也是变相的,呃,告诉大家呀,哎,新的东西出来了,我们就要用新的了,不要老在那用这些老的,是不是,哎,这个这个这个标准就是这个初衷哈,我来新的了,你不用新的,你还在这用老的,那我出这个新标准干啥呀?对,我在这这个演戏嘛,看戏嘛,对吧, 我在这玩呢,哎,所以说呢,哎,大家呢,以后使用 scop 呢,就用这个新版本的就可以了哈,这是解决这个问题的啊,第一个办法哈,那么大家呢还可能想我呢这个性格,我就是啊保守, 哎,我就是个老顽固,我就想用老版本的怎么做呀,那么就看这个提示的后半句啊,他说呢想要去掉这个描述,对吧,就是去掉这个错误,这个就就就把这玩意去掉了,怎么去掉呢?是使用嗯,柚子这个东西啊,就是这是个红啊,这是个 红,就是声明一下这个红啊,当然的话呢,大家我们这块呢还没学到红呢,大家呢可以直接跟着我去做哈,把这个整个的下划线,一直到我们这个结尾这块把这个大写字母给他拷贝下来啊,然后呢在我们程序的最前面啊, 哎,写上底饭,井号底饭,然后呢加个空格,把我的这个红呢直接粘贴到这个位置就可以了, 哎,看好了,这个呢叫底饭,底饭这个单词大家都差不多,中间一定要隔开啊,很多小伙子呢没隔开,连在一起了,连在一起不行啊,连在一起他不认识了, 一定要空格隔开,因为前面这个底饭和后面这个这么长的这个东西呢,它是两个玩意,你连在一起的就分不开了,哎,中间空格用多少都行,你用一百个都行,哎,只要把它俩区分开啊。好,那这样的话呢,我们就能够去强行使用这个斯看不了, 哎,你看这个球错误就没有了,对吧,但是呢,我们程序中呢,他会一直存在这个绿色的下划线,哎,这个就很烦是不是 啊,那么也是啊,就变相的去强迫我们用这个杠 s 新版本啊,这个是可以理解的,但是此时的话呢,你就可以去强行去用了啊,那么这块的话呢,大家很多小伙子把这个底饭呢放在这了,好使吗?不好使了, 一定不要放下边啊,我们放在哪呢?一定要放在我们的这个 stdl 点 h 前面,你看你放下面不管事, 这样吧,一定要放在我们这个 s t d l 点一是前面,为什么呀?因为我们 stcam 这个函数的呃,声明啊,他这个使用的钥匙呢,就在这里头,我们想要让这个东西去起效, 对吧?死看不去喜笑,你就只需要呢让我 stdl 点一车这个,这个在这个红红之下就可以了,这是这个问题的解决方案啊,但是 我就呃呃不去那个啥了啊,不去那个那个这个使用这个了,我还是用新版本的啊,另外呢就是可以在我们这个呃工程属性里边呢去设置一个 sdl 关闭啊。啊?在哪来着? 找一找啊?在这呢,在我们这个私家家常规里头啊,这个项目属性常规里头这有 sdl 检查,你把这个是呢给它设置成否就可以了,那样的话呢我们就可以使用这个死看法了 呀。哎,就这么两三个办法啊,大家呢随便啊,但是呢我以后呢就用这个新的了,我不用老的,我是一代新人换旧人吗?好,接下来呢咱们去输入啊,那么我们啊可以看到啊这个当前的这个运行的状况啊 啊首先呢他输出了这个普润 f 啊,就是我们上面第一个普润 f 输出了 ab 初始的值,对吧?然后紧接着呢我们的这个呃控制台呢就在这卡着了 啊,等待我们去输入啊,他在这跳着闪呢,对吧?哎他就是到死看不这了,我们开始去输入输入怎么输入呢?我们输入一个数,然后按空格再输入第二个数 呀,哎这是输入完毕了,输入完毕最后呢我们要按一下回车,哎,我们按回车的这一会呢,呃这个 skaf 呢就会把我们输入这两个数呢给他放到我们这个边量里头,明白吧?哎看好了这个过程输入一个十二啊,当然不一定是十二,只要是整数就行啊。输入这个十二,然后呢按一个空格, 哎,当然空格的话呢你摁多少个都摁一百个空格也行啊,他的目的呢就是把这两个数分开,对吧?你要不分开的话一二三四,你说这个数是多少啊, 对吧?这是一千二百三十四,这是一个数啊,连在一起呢就是一个数啊,对吧?所以中间呢用这个呃空格给它隔开啊,隔开的话是第二个数,第二个数最最终总输入完了之后啊,按一下回车, 哎,这回车呢就表示输入结束, stcove 呢,这个函数开始啊,将我们的这个呃数据啊,啊十二啊,放在我们的 a 里头,然后呢啊再把这个三十四呢放在这个 b 这个边量里头, 好,最后呢输出的时候呢, a 六变成十二了, b 就变成三十四了,哎,这就是呃这样的一个过程啊,然后紧接着我们看一下课件上的一个细节啊, 那这块呢一定要用电量地址哈,假设呢我们这块呢忘记使用电量地址了,这个呢大家呢经常忘啊,已经忘的都都不是说一次两次的了哈,那都是成千上万次的了,一直忘啊, 那么他这块呢,输入一个二十三,然后四十五,然后呢紧接着按回车,等着,直接啊,看这提示个什么,哎,哎,这个呢放小点啊, 哎,提示这块呢引发了一个异常啊,引发了异常,异常中断了,程序呢就 就废了,哎,这个异常中断相当于什么?相当于我们玩游戏的时候玩着玩着中途呢,哎,这个这个这个这个游戏界面呢变成灰色的了,然后提示什么?哎,游戏什么运行异常,然后呢程序呢?关闭,点击确定,哎, 程序没了,哎,另外呢就是我们这个游戏玩玩直接就卡掉了,那都是什么引发了这种呃内存的这种异常,对吧?哎,那知道这个事就可以了,对吧?那这异常了,这个程序呢就废了啊,必须呢就必须要改正了是不是?哎, 一定要加上曲地址了,这就是我前面给大家举的那个例子啊,我说人家这个函数呢,要求啊,就必须加这个曲地址,你不加他就出错, 对吧?那个小伙子说,哎呦,那个小伙子说,我不能接受这种解释,呵呵,这个搞得我也是挺尴尬啊,这都没办法,这是语法规定哈。如果说你自己写一个 c 语言的四看五函数,你可能就不加这个曲地之福,但是目前的这存在的这四看五函数呢,就必须加这个曲地之福啊,这不是你接不接受就就解决的问题啊,你如果不接受那你就不用学 c 语言了吗? 啊?是不是?好,这是这个啊,然后继继续呢,我们看这个细节哈。嗯,这个中间的输入的时候呢,我们用一个空格隔开的,对吧?我在这块呢就是空格的话呢,就是不容易看出来吗?我就用这个监控号,然后包括空格呢表示这是摁了一个空格哈,那么这个空格的话呢,可以用回车去代替, 也可以用 t 宝键进去代替哈,一个 t 宝键呢就是八个空格对吧? t 宝键就是我们键盘上的。呃,右侧 esc 下面那个 tb 键啊,就是 tb 键啊,他呢在我们这个控制台上默认是八个空格,有的这个控制台上默认是四个空格,反正你就知道他是一堆空格,还有的呢是两个空格, 这个呢比较好理解哈。嗯,就是分格吧啊,默认呢就只能用这三种哈,你不能用其他的分格,用其他的分格呢,都会爆错啊,比如说我们不能叫爆错,不就是会输入失败啊,咱们给大家演示一下, 哎,比如我这个输入一个十二,然后呢,我按了一个逗号啊,用逗号分隔的,然后紧接着按四十五,再回车,发现大家发现怎么着?哎,发现呢,我们这个 a 呢是输入成功了,我们这个 b 呢没有输入成功,对吧?没有输入这个四十五,他还是出入植物呢, 为什么呢?就是因为呀,呃,我们这个 stendfa 读数据的时候呢,就是我们输入的这个东西啊,那么 steadfand 呢?我们按了回车之后, stead 我开始往外拿,第一次呢,拿一个百分之 d, 拿百分之一就是一个整数了,把二十三拿出来装在 a 里了,然后紧接着分割服, 我们这个分割服默认啥?默认是空格,回车和这个推宝键,他只认这三个,默认的情况下,结果你放了个逗号,怎么样?他不认识了,他不认识逗号,那不认识逗号怎么办呀? 那他就输入中指了,哎,他一看到不认识的字符,那么这个函数呢,立刻终止结束,所以呢, a 就输入成功了, b 这个呢,他根本就没去看,因为逗号呢,就给他中断下来了, 哎,那么这个四十五呢,就,呃没有输入到我们这个币里头,对吧?哎,这为啥呀?这,这个函数就是这个功能,对吧?哎,你这个两个两个,这, 这个,这个啊,格式说明符紧挨着这种写法,你中间,你输的时候就只能用空格,回车和推包键,就这三个,没有别的,记住就行了,对吧?你用其他的分格呢,都是错的啊,都会导致 b 这个变量的输入失败啊。 好,这就是这一个情况哈,然后呢是,呃, scam 杠 s 这个函数的一个简单介绍,它是 cu 九标准推荐使用的 c 十一之后呢就强制使用了,要求使用新版本,老版本的那就给它删掉,但是呢 c 颜色吧,他也是给我们保留了使用老版本函数的那么一丝丝的希望,对吧?哎,一丝丝的那个什么啊,但是呢,我们也就不用去使用了啊。

我们来看今天添加空格这道题啊,很简单,但我们今天学一个取巧的办法啊,之前我们都是用循环来做的,但今天我们用格式化来做这个题,格式化的输入输出 printf, 跟 skf 说呢,输入一个四位的这种数,要求将数字当中每一位数字进行拆除, 最后以空格输出,比如一九九零,输出一空格,九空格,九,空格零啊,我们不把位数进行踩分啊,我们在输入的时候就解决这个问题, 我们来看啊,当时我们的课件说我们学 skif 的时候啊,是这个课件要求啊,明白它的 用法啊,注意空格,回车等等。在 printf 的时候呢,重点是这个部分保留几位,比如说我们的数字不够三位的时候,我们就补充空格啊,我们来写一下,回忆一下啊,就主要是这两个课件,我们对它 进行一个综合使用啊,比如 int a, 它等于一六九零,那么 printf 打印百分之 d 和 a, printf a 百分之 d, a 这个比它位数长,比如说五位,这个比它位数短,比如说三位,比它位数短的时候就不起作用了,然后 scanf 会重新复制百分之 d d 值符 a, 我们最后再打印一个 three 啊,打印三句话,这是我们刚说学的嘛,就这几句话 啊,我忘了回车了,打成一行了,咱们回车一下, 回车再回车。 好,一九减零,你看第一个五个, 他就多占一位,补充了个空格,这个就是四位啊,四位是正好的,但这个位置上输入的,我们给他输一个数啊,比如说输一九九零啊,他就正好把四位给输出来, 这是当时的格式输出,我们今天就利用一个什么样的思路呢?我们 skf 这时候也想在这加个尾数 啊,这就是一个比较特殊的用法。我们来看啊,就针对这道题,一九九零,我们要输入这个,一九九零怎么输呢?看啊,我这就直接输入了百分之 d, 我就不限定它的位数了,在这个位置上去使用它, 哎,看好了啊,我们给它加 e, d 啊, e, d 四位 百分之 e, d, 百分之 e, d, 输入四个,然后我们输出的时候是空格百分之 d, 百分之 d, 百分之 d, 看这个正好输,按我们的要求输出一空格,九一空格,九一空格零,这个位置就很曲巧,我们就占你一位,不管你中间用空格什么什么格开,我就取你一位,所以他直接输的是什么就确定 啊。但是这一个变量不行吧,这不是四个吗?这不是四个吗?所以我们要准备四个变量, b, c, d 啊,好记, a, b, c, d, 那它也是四个, a, b, c, d, 它也是 a, b, c, d 啊,它四个部分 好运行,我们看一下我们的效果吧,一个比较巧妙的用法啊,好,一九九零回车是不是有风格了,直接把思维打开了,哎,我们再运行一下,哎,再运行一下,看看 three, 九八七五回车是不是,哎,既没用循环写那么多啊,还巧妙的使用了我们的 scaf 跟 protaf, 哎,一个非常好的用法啊。

第七节数据输入,我说做啥就做啥,我们 pnf 学会了输出嘛,可是现在输入怎么办呢?就每次代码都要改完代码去搞是不是?那输入就是看 f 了,你就会发现是看 f, 基本上就跟 playfa 是一个道理, 几个事情,第一就是他是可以像 plus 一样,你可以有多个连续输入的,那么每个输入之间用什么推翻, 你可以用回车,也可以用空格,都可以试一下啊,空格和回车都可以连续输入两个就用空格,用两行输入,你就用回车,然后穿插都可以,他一直要等到你所有的你有几个参数全部录完之后,这一局才会执行完成。 然后是跟 f 里面呢,这个百分化 d 和百分化 c 这种参数的基本上就是跟 politf 是一模一样的,你如果读入的是一个硬的,你放的是一个硬的变量里面,那么你就应该用百分化 d, 如果你放的是一个 flow, 你就应该百分好 f。 如果 你输入的是一个制服,那么就应该用百分好 c, 因为你输入一个零的时候,计算机不知道你出的这个应得,你想当成应的还是当成制服,所以他完全由你在这里定义的这个参数决定,如果参数错了,接下来的结果可能全部都错了。 这个华华符号暂时不用理解,这是个地址符号,到时候是指针的时候他就全部都清楚了啊。在 cc 加的时候就改掉了, cc 加的这个 c 印就用的很简单,他根本就不分这种东西,就搞的很简单 简单。那我们现在就记住,反正你你如果想输入的是一个硬的,你就要定一个硬的变量,如果输入的是个恰,你就定一个恰变量,然后对应的这个地方就摆放是一个摆放,低级也好,然后用花符号把这个临时变量放到这个地方,那么你输入的就会存到这个临时边上里去,那么相当于接下来你就可以用这个临时变量直接用了啊,这就是 是开服,是开服,就这么简单。嗯,然后接下来这个题目大家都我建议所有人做一下,因为这是对之前所有东西的一个总结,那么这个家家户变成输入,然后还有交互啊,这个所有人我觉得都应该要做一下,作为这一刻的寂寞。


欢迎来到一页学懂信息学,我们来看一下输入的另一个指令 scanf, 也会说一下它与 c、 in 的 区别。 控制台输入的另一个指令 scanf, 它的格式是这样子的,这个跟 print f 有 点像。前面第一个参数是一个格式字母串,后面的是一个变量地址列表,注意了,这里是一个变量地址的列表。 格式制符串中包含的分类符百分号,分类符,分类符与变量地址一一对应,这个跟 print f 是 一样的。然后呢,我们这里介绍一个新的符号,取地址符号这个符号,通过这个符号可以获取变量的地址。 再来看一下分类符有哪些跟那个 print f 一 样。百分号低表示的是整数,百分号 f 是 float 的 浮点数类型 百分号 l, f 是 双精度浮点数类型 double, 百分号 c 是 单个字母差类型百分号 s 是 字母串。 我们来看一下这个例子,我们需要输入一个整数 a, 差类型 b, flow 类型 c, double 类型 d。 还有一个字母串数组,其实字母串数组就是差类型的数组。后面讲到数组的时候,我们会继续讲 s、 k、 n、 f 这个指令。第一个参数是格式制复创,你看这里有一个格式制复创,格式制复创我们在编辑 f 里面已经学到过了,我们要让这个变量地址跟格式制复创中的分类符一一对应,所谓的一一对应就是个数要一样,变量的类型要跟这个分类符 一样。百分号 d 是 一个整数,所以这里是整数 a。 变量百分号 c 是 一个差类型,这个 b 是 一个差类型,百分号 f 是 一个 flow 类型,百分号 l, f 是 一个双精度浮点度, 所以这里一个 d 是 一个 double 类型,然后百分之二 s 呢是一个字母串,这里差宿主其实就是一个宿主串,我们可以看到这个变量 a 前面有一个取地址的符号,这个符号就获取了变量 a 所在的地址。同样的道理,变量 b 前面也有个取地址变量 c 也有, d 也有,但是唯独这个宿主串宿主它不需要,为什么呢?因为这个宿主变量本身就是一个地址, 我们后面会继续讲分类符,以变量地址一一对应,不能多也不能少,类型要一致,这就是使用 scanf 函数需要注意的。这个 scanf 它的格式,它这里是用逗号风格, 逗号风格我们在控制台输入的时候,你看我们上面这个注是,其实就是控制台中要输入的一个参数,这里也是严格用逗号风格,这个格式跟这个格式制符串是对应起来的, 这个一二三通过这个百分号 d 会传到这个 a 变量的地址中,然后给 a 变量复制为一二三。这个 a 制符呢,就通过这个 b 变量的地址 复制到 b。 四点五六就是一个符点数,它会通过取地址符取到 c 的 地址复制给 c 变量。七点八九通过 d 变量的地址赋给 d 变量。 hello, 这个制符串通过 str 这个宿主复制给这个宿主变量,这是一个严格的匹配模式。 什么叫人格?这里逗号跟输入的逗号一一对应,必须是一个逗号,不能是其他,不能是空格,不能是其他符号,这种叫人格匹配固定格式, 我们来对比一下吸引,吸引是用空格或换行分割多个变量的输入,比如说声明一个年夜日吸引输入这三个变量,我们在控制台可以通过换行输入,二零二五年十一月三十日通过换行,这样子就让程序读识到三个变量的值, 也可以是通过空格来分割,这样也捕取到三个变量的值。而 scanf 呢,可以使用自定义匹配的格式分割多个变量输入, 例如 scanf, 一个百分号 d, 杠百分号 d, 杠百分号 d, 这里传入夜变量的地址,取到冒伪变量的地址,被变量的地址对应的都是 整数类型,用的是百分好低。这时候我们看到这个自定义格式中间是用一个横杠隔开的三个整数。你看我们控制台输入的时候,就可以通过二零二五一杠十一月一杠三十日这样子的方式,跟这个格式字母串完全严格匹配起来 是正确的,而这种用空格的就是错误的,因为这里要求的是用横杠,你这里用用空格,那就是匹配不上了,这种就会读取失败,这变量值就是不确定我们如何选用。需要匹配固定特殊格式时使用 scanf, 比如说年月日中间用 横杠隔开十分秒,用冒号隔开时,我们就可以用 scanf 把它匹配到具体的整数变量中。一般使用空格或换行分割的那些输入变量,必须用 c in。 总结一下控制台输入 scanf 的 用法,首先第一个参数就是格式化矩阵,尤其要注意一下 double 类型的 式化矩阵,分类符是百分号 l f。 scanf 是 一种需要严格匹配格式矩阵的控制台,输入它的参数列表需要传入的是变量地址,如果一般情况下可以用空格换行隔开变量的值的,直接用 c 印就可以了。 如果有一些特殊格式要求的,我们才需要用 scanf 来进行控制台的输入。这两者的区别主要体现在它的输入格式上。


初学者注意了,输入的坑题来了,那我要是从键盘上输入一个二十,它这个结果应该是多少呢? 首先 scencil 就是 输入,输入存在 n 里,我又输出了 n 加 m。 那 其实啊, scencil 啊,只能存入一个二十,等到第二个 scencil 的 话,它会不输入,继续等待输入。走,咱们看看去。