C语言输入和输出

 

数据输入

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

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

       getchar 用于输入单个字符。

       gets    获取一行数据,并作为字符串处理。

       scanf   最灵活、最复杂、最常用的数据输入函数。

数据输出

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

       putchar 用于输出单个字符。

       puts    输出字符串。

       printf   最灵活、最复杂、最常用的输出函数。

断章取义

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

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

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

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

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

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

printf输出

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

       printf函数的调用方法是: printf(格式化字符串,参数列表);

1、输出描述性的文字

       输出的文字用双引号包含起来,在文字最加上\n表示换一行,多个\n可以换多行。

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

       以上代码将在屏幕上输出文字:我心非席,不可卷也,我心非石,不可转也。

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

2、输出整数

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

              printf("我年龄是%d岁。\n",18);

              int age=18;

              printf("我年龄是%d岁。\n",age);

3、输出字符

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

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

              char xb='x';

              printf("我姓别是:%c。\n",xb);

4、输出浮点数

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

              printf("我体重是%lf公斤。\n",62.5);

              double weight=62.5;

              printf("我体重是%lf公斤。\n", weight);

5、输出字符串

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

              printf("我的姓名是%s。\n","豫让");

              char name[21];

              memset(name,0,sizeof(name));

              strcpy(name, "豫让");

              printf("我的姓名是%s。\n",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公斤。\n",name,xb,age,weight);

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

7、示例(book12.c)

      

       运行结果

      

scanf输入

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

       scanf函数的调用方法是: scanf(格式化字符串,参数列表);

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

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);     // 在变量名前要加符号&。

3、输入字符串

       输入字符串的格式用%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)

      

       运行结果

      

注意事项

       本章节只学习scanf和printf函数最简单的用法,是为了让学习的过程更轻松一些。

       scanf函数只是在C程序基本知识的学习中才用到,在实际开发中基本上不用,所以我们只学习它最简单的用法。

       但是,printf不是一个函数,是一系列函数,功能强大,变化很多,应用广泛,极其重要,以后有特别的章节来学习它。

版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

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

 

 

  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值