嵌入式学习day4

        今天学习的是c语言中的输入输出,关于输入输出这里需要提到一个关于缓冲区的概念。字符无论是输入还是输出都是先存放在缓冲区,然后根据实际的情况从缓冲区中得到数据进行输入输出。

1.字符数据的输入和输出:

        putchar(x):用于输出一个字符.这个函数的返回值是类型是int,返回值等于所输出字符的ASCII码值,但是如果输出失败,则返回值位-1.

        getchar():用于从缓冲区取得一个字符。这个函数的返回值类型为int,返回值为获得字符的ASCII值。

2.格式化输入和输出:

        printf("格式控制字符串",可选参数): 该函数用于格式化输出数据。

                格式控制字符串:占位符和其他字符。其他字符原样输出,占位符用于以不同的数据类型格式输出数据。   

                        关于几个特殊的占位符及其意义:

                                整型中:%x:表示将数据以十六进制输出                

                                               %X:表示将数据以十六进制输出,并且其中的abcdef以大写的形式输出。        

                                                %o:表示将数据以八进制输出

                                浮点型中:%e:表示将数据以科学计数法的形式输出

                                                   %E:表示将数据以科学计数法的形式输出,并且后面的e为E;

                                                    %g:表示以一种更简洁的方式输出,不会输出无意义的0;

                                其中注意:想要格式化输出 ‘%’时,应当在格式控制字符串中输入‘%%’。               

                        占位符前面可以选择添加辅助控制符,其中的几个辅助控制符及其含义:

                                1.%#:用于整型输出八进制和十六进制数据时,用于输出八进制和十六进制的前缀。

                                2. %md:m用于控制输出要输出数据的宽度。如果m的值大于数据的实际宽度,则需要在数据前面填充空格。如果数据的实际宽度大于m的值,则会输出实际的数据的宽度。

                                3. %-md: 表示输出的数据应该为左对齐(默认的对其方式为右对齐)

                                4. %0md :表示右对齐数据前面填充的不是空格,而是0(注意:左对齐方式不会填充0,但是会填充空格)。

                                5. %.2f:在输出浮点型数据时,用于控制小数部分的位数。在输出字符串类型时,用于输出前几个字符。

           scanf("格式控制字符串",地址列表):用于从缓冲区读取数据并存放在对应的内存地址中。

                格式控制字符串:占位符和其他字符。其中其他字符需要原样输入。而占位符用于以不同的形式来进行读取数据。比如%d ,表示以有符号十进制的格式来匹配数据进行输入。

                 scanf()输入结束的条件分为:

                                1.遇到非法字符。比如%d 在读取到字符a时,则匹配结束。

                                 2.遇到空白符。空白符包括空格、制表符、换行符。(其中特殊的时%c,在%c匹配到空白符时,%c能够对空白符读取成功。为了保证%c能读取到正确的字符,则有两种办法实现。1.在格式控制字符串中,在%c前面加一个空白符可以使空白符匹配带匹配字符钱的多个空白符,比如 \n%c,待匹配的字符为 \t     \n c,则\n可以匹配掉字符c前面的多个空白符,从而保证%c匹正确的匹配到字符c.2. %*c可以匹配单个数据项,但是不会将数据给到任何一个变量)

注意:printf()的返回值为输出字符的个数。

           scanf()的返回值为正确读取的个数。

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值