C语言零基础入门—标准输入输出

C语言零基础入门—4.标准输入输出
image

这一节的任务是讲解 标准输入输出格式


1. 计算机内部是如何进行存储的

通过前面的讲解我们知道了任何东西在计算机中的存储都是以0 / 1 串的形式存储的,这句话的意思就是:

  • 无论是字符,字符串,数字 在计算机中的存储形式都是数字0 与1 的组合存储的。

  • 比如:我们存储int a = 3的时候,编译器会自动把数字3转换成二进制的0/1串

    00000000 00000000 00000000 00000011
    
  • 上边的一串就是 3 转换成二进制的形式。如果大家不会二进制的转换的话就先不用纠结,我们预计下一节好好讲讲二进制的转换

  • 至于前边为什么有这么多0:它的类型是int类型,根据我们前一节讲的数据类型知道,int存储的时候在计算机中占四个字节,又根据一个字节等于8位,我们可以计算出来int类型在计算机中占有 4*8=32位的存储空间。意思就是说:int在计算机中存储时占32位。既然占32位,(就是可以存放32个0或1),然而3的二进制是 11 ,显然只有两位,占不满32位,但是C语言中规定的是必须占32位,因此:占不满的时候,用0补充。

  • 再比如:我们存储字符char str = 'A' ;的时候。编译器会根据ASCII码表找到大写 A 的十进制数字 65,然后再把65转化为二进制,再存储到计算机中。

  • 什么是ASCII码:电脑编程是全球人类共同进行的一件事情,但是由于各个国家的文字都不一样,因此在编程的过程中,C语言编译器为了让每一个国家的人都可以正常使用,因此C语言编译器对字符的处理需要统一起来。(也就是任何一个国家都可以用的字符集)。

  • ASCII码就是一个字符集,他基本上把我们在编程中能用得上的符号,都进行了编码。让我们使用

  • 这里仅仅列出一部分,大家感兴趣的可以自行百度。
    image

2. 为什么需要标准输入输出

从上边的计算机内部的存储我们可以发现一个问题:

  • 不论我们输入的是数字,字符还是字符串,在计算机的内部存储的都是0/1串。这个对于存储的时候是非常方便的,对吧。
  • 但是问题来了,我们取这些数据的时候怎么取呢,他在计算机内部都是0与1,那我们的存大写字母A进去之后,要怎么样才能取出A呢?以及其他类型的数据要怎么样才能存取正常呢?

当然,这就需要格式化输入输出了


3. 格式化输入输出

3.1 什么是格式化输入输出

根据以上的分析我们可以得出:

  • 不论什么类型的数据,在计算机中存储都是0/1串。
  • 存的时候我们需要将原始数据转换为0/1串进行存储。
  • 取的时候自然也需要将0/1串转换为原始格式的数据了。

因此,输入 以及 输出 的时候我们都要指定当前的数据是什么类型。

  • 只有指定了输入是什么类型之后,C语言编译器才会知道当前数据是什么类型,然后根据类型去转换为0/1串(比如:是数字的话直接转为二进制进行存储,是字符的话根据ascii找到对应的数字,再去转换为二进制)。
  • 当指定了输出是什么类型的时候,C语言编译器才知道把从计算机存储器中得到的0/1串转换成什么类型的数据。(比如:当指定输出的时候用整形进行输出,那么就把0/1串转换为整形)
3.2 用 printf 进行格式化输出

printf函数被称为格式化输出函数,用来向终端(或者其他设备)输出若干个任意类型的数据。

  • 输出的格式:printf("格式控制" , "输出列表");

  • 格式控制:是用双引号括起来的一个字符串,它包含 “格式声明” ,“普通字符” 两个内容。不懂的见解释。

  • 输出列表:这里放置需要输出的变量名称,或者变量表达式。

解释

  • 格式声明说的是 我们用特定的符号来表示当前数据输出的数据是什么类型。

  • 普通字符说的是 是在输出的时候可以原样输出的字符,我们用这些说明性的字符来让输出更加的美观。

  • 举个栗子

    int a = 3;   
    int b = 6; 
    printf("a = %d,b = %d",a,b);
    输出的结果是:a = 3,b = 6        
    
    这个代码里边: 
     - 格式控制:"a = %d,b = %d"   |
     - 输出列表:a,b
     - 在 格式控制 里边:
     ~ 格式声明:%d
     ~ 普通字符:a= ,b =
    
  • 因此,我们也可以把 %d 理解为占位符,(就是在输出的时候,用%d把这个位置先给固定住类型,然后C语言编译器会自动从后边的输出列表进行从左到右的逐个匹配进行输出)

3.3 用scanf()进行格式化输入

scanf函数被称为格式化输入函数,用来从键盘输入指定格式的数据。

  • 输入格式:scanf("格式控制" , "地址表列");

  • 格式控制:这里的格式控制与输出的相同,就不在赘述。

  • 地址表列:这个是由若干个地址组成的表列,我们使用的时候只要记得在变量前边加上 & 符号就可以了,具体原因后边讲。

  • 举个栗子

    int a;
    scanf("%d",&a);
    得到的结果是:从键盘输入一个整数,赋值给变量a。
    
  • 注意:我们不推荐在scanf的 格式控制 中使用普通字符,如:scanf("a = %d",&a);,我们不推荐使用 a = 进行修饰,我们建议直接使用scanf("%d",&a);进而得到a的值。至于提示性的消息我们可以在scanf前边加上一个printf进行输出提示即可,比如:

    int a;
    printf("请输入变量a的值:");//当没有需要输出的变量的时候,输出列表可以省略
    scanf("%d",&a);
    得到:
     请输入变量a的值://然后在此处输入一个整数即可
    
3.4 格式化输出控制符

以上的讲解我们都在使用int 以及 %d 进行讲解,因此大家应该可以想到,数据类型int的格式控制符号就是 %d,以此类推,每一个数据类型都有着对应的格式化控制符。

  • %d:用于输出一个有符号的十进制整数。

  • %c:用于输出一个字符。

  • %s:用于输出一个字符串。

  • %f:用于输出浮点数(带小数的数据)。

  • 使用 %f 的时候,默认会输出六位小数。

  • 也可以使用 %m.nf,意思是输出的浮点数中总共m位,其中小数占n位。

  • 其他输出格式等用到了再说,一般很少用。

3.5 格式化输入控制符
  • 一些常见的整数,字符,字符串,浮点数的输入 与输出的一样。
3.6 字符的输入输出

字符的输入输出比较特别,出了有%c的输入输出方式外。单独有着对应的函数进行输入输出。

  • 字符输出函数:putchar()

        char a='H',b='A';
        putchar(a);
        putchar(b);
        输出:HA
    
  • 字符输入函数:getchat()

       a =getchat();
    

    然后屏幕会停止等待你输入一个字符,用a进行存储

到目前为止顺序程序设计算是告一段落了,下一节准备讲 进制之间的转换,之后再做一些实战的代码演示,让大家深入的理解编程。关个注呗!!!
image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容