• C语言输入和输出


    一、数据输入

    编写程序的主要目的就是为了处理数据。数据从哪里来?数据的来源有很多种方式,如从磁盘文件中读取数据、从数据库中读取数据、从网页中抓取数据等,还有一种原始的方式就是从键盘输入数据。

    在C语言中,有三个函数可以从键盘获得用户输入。

    getchar:输入单个字符,保存到字符变量中。

    gets:输入一行数据,保存到字符串变量中。

    scanf:格式化输入函数,一次可以输入多个数据,保存到多个变量中。

    二、数据输出

    在C语言中,有三个函数可以把数据输出到屏幕。

    putchar:输出单个字符。

    puts:输出字符串。

    printf:格式化输出函数,可输出常量、变量等。

    三、断章取义

    三十年前,个人电脑还不流行的时候,软件主要用C语言编写,包括操作界面,数据的输入和输出函数都很重要。现在,数据的输入和展示由网页和APP等软件去完成,C程序主要用于数据处理和网络通信,程序运行在后台,没有操作界面。所以,getchar、gets、scanf这几个函数几乎不用。

    各位是初学者,出于教学的需要,采用scanf从键盘输入数据,便于演示程序的功能,所以我们只需要学习scanf函数的简单用法即可,getchar和gets函数无需关注。

    C语言的输入函数已不重要,但输出函数仍然非常重要。

    putchar和puts函数没什么用,已经被淡忘,那就忘了吧。

    printf函数非常重要,以后我们将深入学习,本章节只讨论它的简单用法。

    现在,只剩下scanf和printf函数了。

    四、printf输出

    printf函数是格式化输出函数, 用于向屏幕输出数据。

    printf函数的调用方法是:

    printf(格式化字符串,参数列表);
    

    1、输出描述性的文字

    把输出的文字用双引号包含起来,文字中的 表示换行,多个 可以换多行。

    printf("我心匪席,不可卷也,我心匪石,不可转也。
    ");
    

    以上代码将在屏幕上输出文字:

    我心匪席,不可卷也,我心匪石,不可转也。
    

    出输文字之后,再输出一个换行。

    2、输出整数

    输出整数型常量或变量用%d表示,在参数中列出待输出的整数常量或变量。

    printf("我年龄是%d岁。
    ",18);
    int age=18;
    printf("我年龄是%d岁。
    ",age);
    

    3、输出字符

    输出字符型常量或变量用%c表示,在参数中列出待输出的字符常量或变量。

    printf("我姓别是:%c。
    ",'x');        // 姓别:x-男;y-女
    char xb='x';
    printf("我姓别是:%c。
    ",xb);
    

    4、输出浮点数

    输出的浮点型常量或变量用%lf表示,在参数中列出待输出的浮点型常量或变量。

    printf("我体重是%lf公斤。
    ",62.5);
    double weight=62.5;
    printf("我体重是%lf公斤。
    ", weight);
    

    5、输出字符串

    输出字符串常量或变量用%s表示,在参数中列出待输出的字符串常量或变量。

    printf("我的姓名是%s。
    ","西施");
    char name[21];
    memset(name,0,sizeof(name));
    strcpy(name, "西施");
    printf("我的姓名是%s。
    ",name);
    

    6、输出多个内容

    调用一次printf函数可以输出多个常量或变量。

    int age=18;
    char xb='x';
    double weight=62.5;
    char name[21];
    memset(name,0,sizeof(name));
    strcpy(name, "西施");
    printf("我的姓名是:%s,姓别:%c,年龄:%d岁,体重%lf公斤。
    ",name,xb,age,weight);
    

    注意,printf函数第一个参数(格式化字符串)的格式与后面的参数列表(常量或变量的列表)要一一对应,一个萝卜一个坑的填进去,不能多,不能少,顺序也不能错,否则会产生意外的结果。

    7、示例(book12.c)

    /*
     *  程序名:book12.c,此程序演示printf函数输出变量的内容
     *  作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
      int age=18;
      char xb='y';
      double weight=45.5;
    
      char name[21];
      memset(name,0,sizeof(name));
      strcpy(name,"西施");
    
      printf("我的姓名是:%s,姓别:%c,年龄:%d岁,体重%f公斤。
    ",name,xb,age,weight);
    
      return 0;
    }
    

    运行效果

    在这里插入图片描述

    五、scanf输入

    scanf函数是格式化输入函数,用于接受从键盘输入的数据,用户输入数据完成后,按回车键(Enter)结束输入。

    scanf函数的调用方法是:

    scanf(格式化字符串,参数列表);
    

    注意,不要在scanf的格式化字符串的最后加 。

    1、输入整数

    输入整数的格式用%d表示,在参数中列出整数型变量名,用于保存输入的数据。

    在输入数据之前,一般要先输出一句话提示用户。下同。

    int age=0;
    printf("请输入您的年龄:");   // 提示文字不要换行,让用户在后面输入,下同。
    scanf("%d",&age);     // 在变量名前要加符号&,先不要问原因,以后再介绍。
    

    2、输入字符

    输入字符的格式用%c表示,在参数中列出字符型变量名,用于保存输入的数据。

    char xb=0;
    printf("请输入您姓别:"); 
    scanf("%c",&xb);     // 在变量名前要加符号&
    

    3、输入浮点数

    输入浮点数的格式用%lf表示,在参数中列出浮点型变量名,用于保存输入的数据。

    double weight=62.5;
    printf("请输入您体重:");  
    scanf("%lf",&weight);     // 在变量名前要加符号&。
    

    4、输入字符串

    输入字符串的格式用%s表示,在参数中列出字符串变量名,用于保存输入的数据。

    char name[21];
    memset(name,0,sizeof(name));
    printf("请输入您姓名:"); 
    scanf("%s",name);     // 注意了,字符串变量名前可以不加符号&,不要问原因,以后再介绍。
    

    5、输入多个内容

    调用一次scanf函数可以输入多个数据,全部的数据输入完成后按回车键结束输入。

    int age=0;
    char xb=0;
    double weight=0;
    char name[21];
    memset(name,0,sizeof(name));
    printf("请输入您的姓名、姓别(x-男;y-女),年龄和体重,中间用空格分隔:");
    scanf("%s %c %d %lf",name,&xb,&age,&weight);   // 只有name变量前没加&。
    

    scanf函数第一个参数(格式化字符串)的格式与后面的参数列表(变量的列表)要一一对应,一个萝卜一个坑的填进去,不能多,不能少,顺序也不能错,否则会产生意外的结果。

    6、示例(book13.c)

    /*
     *  程序名:book13.c,此程序演示scanf函数输入数据。
     *  作者:C语言技术网(www.freecplus.net) 日期:20190525
    */
    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
      int age=0;
      char xb=0;
      double weight=0;
    
      char name[21];
      memset(name,0,sizeof(name));
    
      printf("请输入您的姓名、姓别(x-男;y-女),年龄和体重,中间用空格分隔:");
      scanf("%s %c %d %lf",name,&xb,&age,&weight); // 只有name变量前没加&,其它的都加了。
    
      printf("您的姓名是:%s,姓别:%c,年龄:%d岁,体重%lf公斤。
    ",name,xb,age,weight);
    
      return 0;
    }
    

    运行效果

    在这里插入图片描述

    六、注意事项

    1)本章节只学习scanf和printf函数最简单的用法。

    2)scanf函数只是在C程序基本知识的学习中才用到,在实际开发中基本上不用。

    3)printf不是一个函数,是一系列函数,功能强大,变化很多,应用广泛,极其重要,以后我们将深入的学习它。

    4)scanf函数的变量列表,除了字符串,其它的变量前面都要加&,表示取地址,如果不加,程序编译不会报错,但运行时会出现意想不到的后果(1-赋值不成功;2-段错误Core dump)。

    5)printf函数的变量列表,变量名前都不需要加&。

    七、课后作业

    编写示例程序,从键盘输入您喜欢的女(男)神的姓名、性别、年龄、身高(cm)、体重(kg)、和您最喜欢她的身体部位,把输入的数据存放在变量中,然后在屏幕上把变量的值显示出来。

    要求:

    1)姓名用字符串变量存放;

    2)性别用一个字符变量存放(x-男,y-女);

    3)年龄和身高用整数变量存放;

    4)体重用浮点型变量存放;

    5)身体部位用字符串存放。

    八、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
    来源:C语言技术网(www.freecplus.net)
    作者:码农有道

    如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

  • 相关阅读:
    Tiny64140之初始化时钟
    Tiny6410之控制icache驱动
    Tiny6410之按键裸机驱动
    Linux -- man 、info、 whatis、 -h
    Linux -- which whereis
    Linux -- sudoers (简单:转)
    Linux -- sudo
    Linux -- sudoers文件
    Linux -- cp
    Linux -- mv
  • 原文地址:https://www.cnblogs.com/wucongzhou/p/12499349.html
Copyright © 2020-2023  润新知