04 C语言输入输出

[前言]

        学习C语言的输入输出函数,可以帮助我们进行一些简单的调试。我们可以用输入函数scanf向计算机输入数据,也可以通过输出函数printf打印计算机中存储的数据,以检验之前的数据是否输入成功。

一、printf


        前辈,我看你前面用了好几次printf,能讲解一下这个到底是什么吗?

printf("a = %d\n", a) ;  //打印变量a的值
printf("b = %f\n", b) ;  //打印变量b的值

        好的,那我们本节就来讲解一下C语言的输入和输出方式

        printf是C语言的一种标准输出函数,用于向标准输出设备(通常是屏幕)输出数据。它可以有多个参数,参数之间用","隔开

#include <stdio.h>     //C标准输入输出头文件,有该引用才能使用printf函数
printf("参数0", 参数1, 参数2, ...) ;

        其中参数0用双引号""包围,表示一个字符串,这个字符串将会显示在屏幕上。字符串通常是固定的,不能修改,但是printf可以让字符串的某些部分进行变化,而这些变化的值,取决于后面的参数1,参数2,...

int a ;
printf("a = %d\n", a) ;  //打印变量a的值
             ↑     ↑
          格式输出 变化的值

        上面这行代码,"↑"指向的参数a,将会取代前面"a = %d\n"中的%d,同时内存a中的值也会转换为%d类型的数值,而'\n'是一个转义字符,表示换行,所以这段代码打印的结果是:

        唔~原来如此!前辈,我见你有时候写%d,有时候又写%f,这些都是什么意思啊?

        %d,%f,%p,......这些其实都是printf的输出格式,它用来告诉printf,对应内存中的数据应该以什么样的格式进行输出,我把一些常见的输出格式都总结到了一张表上:

        这样,在想要输出指定格式的数据时,查阅此表就可以了。

二、scanf


        C语言的标准输入函数是scanf,它用于接收用户键盘输入的数据,然后根据内存的地址,把这些数据存入计算机对应的内存中,和printf函数一样,它可以有多个参数,也可以指定输入格式

#include <stdio.h>     //C标准输入输出头文件,有该引用才能使用scanf函数
scanf("参数0", 参数1, 参数2, ...) ;
         ↑      ↑        ↑
  用户输入的数据 内存地址1 内存地址2

        嗯,前辈,我大概知道scanf的参数组成和实现的功能了,能给出具体的操作代码吗?我还是不太明白该怎么用!

        好的,以下代码是通过用户键盘输入的方式来给一个变量赋值,然后我们再用printf函数检验一下是否赋值成功:

#include <stdio.h>

int main()
{
    int a ;                     //向系统申请一段int大小的内存a(定义变量a)
    printf("a = %d\n", a) ;     //打印a赋值之前的值
    printf("请给变量a赋值:") ;   //提示语,提示用户输入数据
    scanf("%d", &a) ;          //把用户输入的数据,存入&a(内存a的地址)
    printf("a = %d\n", a) ;    //打印a赋值之后的值

    return 0 ;
}

        代码在执行到scanf这一行的时候,会阻塞等待用户输入数据,用户在输入完数据后,按下回车键(Enter)告诉scanf,我已输入完毕;等待用户输入数据完毕后,scanf会把这些数据存放到指定的内存地址。

        哦哦!原来scanf是这么用的~我再去敲代码多加练习一下!

三、其他输入输出


        除了上面提到的scanf、printf标准输入输出函数,C语言还有其他不同功能的输入输出函数,我把它们都总结到了一个表格上面:

        前辈,我看到上表中提到了字符字符串,请问这两个有什么区别吗?

        这个问题问的好!字符和字符串的区别总结如下:

        (1)字符是用单引号''表示的,如'a','b','c';而字符串是用双引号""表示的,如"abc"。

        (2)C语言中的单个字符包括所有ASCII字符集中的字符,字符串是由不同的字符排列组合而成的。

        (3)字符串默认是以'\0'(结束符)结尾的,而字符没有这个规定。

        我们可以用以下代码验证字符串默认是以'\0'结尾的:

#include <stdio.h>

int main()
{
    char buf = 'a' ;
    printf("sizeof(buf) = %d\n", sizeof(buf)) ;  //打印单个字符'a',大小为1字节

    printf("sizeof(abc) = %d\n", sizeof("abc")) ; //打印字符串"abc",大小为4字节
                                               //因为以'\0'表示结束,实际上为"abc\0"
    return 0 ;
}

        唔唔,我大概理解字符和字符串的区别了^_^ 前辈,我看你之前说C语言中的单个字符包括所有ASCII字符集中的字符,那么这个ASCII又是什么呢?

        ASCII(American Standard Code for Information Interchange,美国信息交互标准码),几乎涵盖了需要用到的所有字符,且每一个字符都会对应一个数字

        比如说表中的字符'A',对应十进制数65,这一点可以通过代码验证:

#include <stdio.h>

int main()
{
    printf("%d\n", 'A') ;  //打印字符'A',但是以%d(十进制)格式输出

    printf("%c\n", 65) ;   //打印数字65,但是以%c(字符)格式输出

    return 0 ;
}

        这就是C语言的字符,所有的字符种类都被总结到了ASCII表中

        嗷嗷!如果我们想要输出某个特定的字符,就可以去ASCII表中查阅,找到这个字符对应的数字,利用数字来打印这个字符!

        没错!~~~我们来总结一下今天所学的内容:

        (1)C语言标准输入常用scanf标准输出常用printf

        (2)C语言的其他输入函数:getchar(),gets();其他输出函数:putchar(),puts()。

        (3)C语言字符字符串的区别:字符串以'\0'(换行符)结尾。

        好的!我这就去自己敲代码消化消化~

[end]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值