c语言字符型输入格式化,C语言:字符串和格式化输入/输出

好,今天继续我们的编程语言课程,这节课我们讲讲关于字符串和格式化输入输出的一些知识,获得知识是为了更好的在实践的过程中有理论知识的铺垫,而不是临危受命。总之学习是为了更好的生存更好的在这社会上生存,你适应不了社会,社会总将会淘汰你。

上 节课,我们讲到了数据和c,相信大家也认识到了很多相关的理论知识,那么现在我们就顺藤摸瓜,继续学习。首先这节课的主角是scanf()和 printf()函数和char数组类型,也就是我们之前说的一个是打字 ,一个是把字打印出来,理论就是这样的操作过程。当然故事有了主角没有配角哪能演好一出戏呢,那么这个配角就是转化说明修饰符,目的就是来处理格式化的输 入与输出。就好像对号入座的道理一样,就比如你上火车了,是不是有个座位号给你啊,然后你就要必须对着这个号码进行对号入座。那么现在我就来介绍几个最常 见的转化说明修饰符。

e75123c85a40fa2a706510e1d4d85fdb.png

最 后的主角char闪耀登场,用一个例子说明一下 char name[40];这个语句说明了在name的储存空间中开辟了40个元素数目,因为是char的声明所以每一个元素大小为1B,不过在这个字符串数组中 只能放入39个元素的数目,这是为什么呢,原来,在字符串数组中最后一个元素必须要加一个,以表示结束的标志。

来看看一个例子把两个内容结合一下。

#include

int main ()

{

char name[40] ; //声明一个叫name的储存空间,数组的元素数目是40

printf("what is your name ?\\n");//转化说明字符/n换行

scanf("%s,name");//输入一个字符串,使用了%s的转化修饰符,表示输入字符串

printf("hello,%s.\\n",name);//输出字符串

return 0;

}

大 家运行这个程序软件会发现一个很奇怪很有趣的现象。比如输入 xiao ming 输出的结果不是xiao ming而是xiao,这到底发生了什么事情呢,这就要说一说scanf函数的一个特点了,使用%s,scanf()只会读入一个单词就是连续紧挨的字 符,而不是一个语句的读入,解决一个语句的读入可以使用gets()函数,这个函数我们会到后面有详细的讲解,再说回scanf()的特点,它说到底就是 遇到空白字符,转化说明字符就会停止读入。这里需要十分留意。

说到scanf()函数,萌小编也着实给他坑了一把,说实在应该是微软坑了我 一把,在小编使用visual stdio 2013进行编程的时候发现,当我使用sacanf函数时总会报错,一开始我也以为自己的语句有问题,但是找了半会也找不出来,最后索性找师傅问了一下, 原来,微软为了内存保护为原则的目的,必须使用scanf_s("语句",转化说明字符,储存的空间)的模式进行编写,可以不让数据过大导致内存不够而溢 出到另一个储存空间,当时我真的是直接骂娘了,醉了,这微软真会玩,看来win10小编也不升先了,不然给微软算计一番就不好。看完小编的文章是不是很精彩,是不是想要成为编程语言的高手,更多关于在线教育的文章尽在课课家,希望你们多多关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值