c语言没有专门的数据输入输出语句,而是通过调用系统提供的的标准输入/输出库函数来实现数据的输入和输出。

    (1)数据的输出:

注意:在使用标准的输入输出库函数时,使用编译预处理命令“#include<stdio.h>”将stdio.h头文件写在程序的开头,该文件包含了与输入输出有关的变量定义,宏定义和函数声明。

1.格式输出函数printf

printf(格式控制字符串,输出表列)

printf需要提供两类参数,一类是格式控制字符串,另一类是输出表列。

整型和字符型格式说明符可以互换,%f格式说明符可以用来输出单精度实数和双精度实数。

在c语言中,格式输入和输出函数对不同类型的数据的宽度必须采用不同的类型说明符。

一般形式:

%[-或0][m][.][n][l]格式符

负号表示当实际数据的宽度小于显示宽度时,数据左对齐,数据右方用空格填充。0表示当实际数据的宽度小于显示宽度时,数据右对齐,数据左边空格用0填充。

m表示占用数据的宽度,如果实际数据的宽度大于m,按实际宽度输出。如果实际数据的宽度小于m,数据右对齐,数据左方用空格填充。

n表示指定输出的数据中有n位小数,或者表示取字符串中左端n个字符输出。如果不指定该项,则系统默认输出6位小数。

l用于输出长整型或单精度型的数据。

用%%表示字符%。

示例:

 #include<stdio.h>

 int main(){
printf("1.用\'%%d\'或者\'%%i\'来输出数据12\n");
printf(" %d,%i\n\n",,);
printf("2.用\'%%o\'以八进制输出整数8,16和以\'%%d\',\'%%o\',\'%%x\'分别以十、八、十六进制输出-1\n");
printf(" %o,%o,%d,%o,%x\n\n",,,-,-,-);
printf("3.以\'%%u\'输出无符号数1000,和-1\n");
printf(" %u,%u\n\n",,-);
printf("4.以\'%%s\'输出字符串\n");
printf(" %s\n\n","我是MenAngel");
printf("5.用putchar输出字符和转义字符\n");
printf(" ");
putwchar('A');
putchar();
putchar('\103');
putchar('\103'+);
putchar('\n');
putchar('\n');
return ;
}

程序运行结果:

    (2)数据的输入:

一般形式:scanf(格式控制字符串,地址表列);

格式控制字符串无任何普通字符。在程序运行中需要输入非字符类数据时,三个数据之间以一个或者几个空格间隔,也可以按回车、制表键间隔。

 #include<stdio.h>

 int main(){
int a;
char b;
printf("1.用\'%%d\'输入整数,\'%%c\'输入一个字符:\n");
printf("第一次输入:");
scanf("%d%c",&a,&b);
printf("a=%d,b=%c\n",a,b);
printf("第二次输入:");
scanf("%d%c",&a,&b);
printf("a=%d,b=%c",a,b);
printf("得出结论,空格");
return ;
}

代码中要求先让输入一个数字后输入一个字符,程序输入为“12”,“ ”,“34”,“a”,可见在c语言中把空格也会当成字符进行输入。另外回车也会被当成字符进行输入。回车代表“\r\n”。不必要的空格和字符输入问题可以用getchar()解决:

 #include<stdio.h>

 int main(){
int a;
char b;
printf("1.用\'%%d\'输入整数,\'%%c\'输入一个字符:\n");
printf("第一次输入:");
scanf("%d",&a);
getchar();//用来接收回车
scanf("%c",&b);
getchar();//用来接收回车
printf("a=%d,b=%c\n",a,b); printf("第二次输入:");
scanf("%d",&a);
getchar();//用来接收回车
scanf("%c",&b);
printf("a=%d,b=%c\n",a,b);
getchar();//用来接收回车
printf("另外getchar()还可以使程序进行暂停:\n");
printf("程序暂停中,按回车键继续......");
getchar();
printf("程序继续运行!");
return ;
}

简单的应用举例:

 #include<stdio.h>
#include<math.h> int main(){
printf("执行开平方操作:\n");
double result;
int n;
printf("输入一个被开放的数:\n");
scanf("%d",&n);
result=sqrt(n);
printf("以5位有效数字,2位小数的形式输出开方结果:\n%5.2f\n",result);
return ;
}

外加库函数math.h的用法结果:

c的详细学习(3)数据的输入输出的更多相关文章

  1. C++学习之文件的输入输出

    C++学习之文件的输入输出        一.文件的打开与关闭        1.输出数据到文件        文件的操作需要包含fstream头文件,文件的操作对象为ifstream,ofstrea ...

  2. FAT32文件系统学习(3) —— 数据区(DATA区)

    FAT32文件系统学习(3) —— 数据区(DATA区) 今天继续学习FAT32文件系统的数据区部分(Data区).其实这一篇应该是最有意思的,我们可以通过在U盘内放入一些文件,然后在程序中读取出来: ...

  3. Hbase技术详细学习笔记

    注:转自 Hbase技术详细学习笔记 最近在逐步跟进Hbase的相关工作,由于之前对Hbase并不怎么了解,因此系统地学习了下Hbase,为了加深对Hbase的理解,对相关知识点做了笔记,并在组内进行 ...

  4. 12.Linux软件安装 (一步一步学习大数据系列之 Linux)

    1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...

  5. iOS学习——JSON数据解析(十一)

    在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...

  6. [Python] Python 学习 - 可视化数据操作(一)

    Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...

  7. 一起来学大数据——走进Linux之门,学习大数据的重中之重

    昨天我们看了有关大数据Hadoop的一些知识点,但是要在学习大数据之前,我们还是要为大数据的环境做一些的部署. 那么,今天我们就来讲讲开启我们大数据之路的Linux,跟上我们的脚步yo~ Linux介 ...

  8. Java软件开发者,如何学习大数据?

    正常来讲学习大数据之前都要做到以下几点 1.学习基础的编程语言(java,python) 2.掌握入门编程基础(linux操作,数据库操作.git操作) 3.学习大数据里面的各种框架(hadoop.h ...

  9. Linux学习-服务器硬件数据的收集

    以系统内建 dmidecode 解析硬件配备 系统有个名为 dmidecode 的软件,它可以解析 CPU 型号.主板型号与内存相 关的型号等等~ [root@study ~]# dmidecode ...

  10. Flutter实战视频-移动电商-41.详细页_数据接口的调试

    41.详细页_数据接口的调试 建立数据模型层,我们的业务逻辑分开,然后进行后台数据的调试 生成model类 json数据: { ", "message": "s ...

随机推荐

  1. Android轻量级日志管理框架

    代码地址如下:http://www.demodashi.com/demo/12134.html ViseLog Android 轻量级日志框架,使用森林对象维护不同的日志树进行日志输出,可以是Logc ...

  2. Ubuntu 12.04 的IP 设置

      通过访问 /etc/network/interfaces 实现动态IP 或者静态IP 的设置. vim /et/network/interfaces 1.设置动态IP auto lo iface ...

  3. c#调用WinRAR软件压缩和解压文件

    using System; using System.Collections.Generic; using System.Web; using System.IO; using System.Linq ...

  4. CDN对于动态加速是否有效

    CDN对于动态加速是否有效的问题.关于这个问题,一直存在一些分歧,部分人认为有效,部分人认为无效,主要是CDN技术也在更新,而且是比较低调的进行着更新,所以并不是所有人都清楚CDN对动态加速的效果.其 ...

  5. Arcgis:坐标系统极其转换

    1. ArcGIS中的坐标系统 ArcGIS中预定义了两套坐标系统,地理坐标系(Geographic coordinate system)和投影坐标系(Projectedcoordinate syst ...

  6. Effective C++ Item 34 区分接口继承与实现继承

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 关联条款 Item 36 接口继承和实现继承不同.在 public 继承下, derived ...

  7. iOS 获取LaunchImage启动图

    iOS开发中,LaunchImage图片会根据手机机型的不同,自动匹配对应的图片,而我们如果想要拿到对应的图片,无法直接通过图片的名字获取该启动图,而需要通过以下方式 + (NSString *)ge ...

  8. ssh不检查server变化

    嵌入式linux开发时经常需要远程登录到板上,但由于开发过程还经常会重新下载内核和文件系统,导致登录时总提示host变了,blablabla,解决方案是在.ssh/config对应的Host项下面加上 ...

  9. u-boot-2014_04在TQ2440上的移植

    本文详细介绍了新版本的u-boot-2014_04在tq2440平台上的移植过程,期间参考了网上的其他移植文档,还有韦东山的移植uboot视频,讲的很好.下面是共享链接,欢迎下载,一同学习.其中有移植 ...

  10. Hotel poj 3667

    Language: Default Hotel     Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 18020   Acc ...