IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 数据输入输出的概念及在C语言中的实现 -> 正文阅读

[C++知识库]数据输入输出的概念及在C语言中的实现

C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。

在使用C语言库函数时,需要预编译命令#include,将有关"头文件"包含到源文件中。

字符数据的输入输出

putchar 函数(字符输入函数)

putchar 函数的作用是向终端输出一个字符,并返回输出字符的ASCLL码的值。

例如:   putchar(c);

输出字符变量c的值,c可以是字符型或整型,在使用该函数时,要在程序开头部分加上:#include "stdio.h"#include<stdio.h>

getchar 函数(字符输入函数)

该函数的作用:从终端输入一个字符,并将输入的字符返回到一个字符型变量中。

一般形式: getchar()

注意:

  • getchar 函数只能接收一个字符,输入字符后需要按回车键,程序才会完成相应的输入,继续执行后面的语句。
  • 如果需要连续输入几个字符,在输入时,用户连续输出字符,最后一次输入完成后,回车即可!同时也要在程序开头部分加上:#include "stdio.h"#include<stdio.h>

printf 函数(格式输出函数)

作用:向终端(或系统隐含指定的设备输出设备),输出若干个任意类型的数据。

一般格式:printf("格式控制字符串",输出列表项);

格式控制字符:是用双引号括起来的字符串,他包括两种信息

  • 格式说明:由"%"和格式字符组成,作用是将输出的数据按照制定的格式输出。
  • 普通字符:即需要按照原样输出的字符。普通字符包括可普通字符和转义字符,转义字符需要转义后输出!

输出列表:是需要输出的一些数据,可以是常量、变量、表达式,个数可以是零个、一个、多个,每个输出项之间用逗号分隔。

例如:  printf("%d,%d",a,b);  #输出a b的值

格式字符

对不同的数据类型需要用不同的格式字符。

主要有以下几种格式字符:

d格式符:用来输出十进制数,有以下几种用法:

  • %d ,按整型数据的实际长度输出
  • %md , m为指定输出数据的宽度(域宽)。如果数据的位数小于m,则左补空格右端输出,若大于m,则按实际位数输出。
  • %-md , 如果串长小于m或数据的位数小于m,则左端输出右补空格,若大于m,则按照实际位数输出。
  • %ld , 输出长整型数据。

o格式符:以8进制数形式输出整数,输出的数值不带符号,即将符号位也以一起作为八进制数的一部分输出。

x格式符:以十六进制数形式输出整数。与o格式一样不会出现负的16进制数。

u格式符:用来输出unsigned型数据,即无符号位,以十进制形式输出。
在这里插入图片描述

c格式符:用来输出一个字符。

  • 一个整数,只要它的值在0-255范围内,也可以用字符形式输出,在输出前,将该整数转换为相应的ASCLL码字符;反之,一个字符数据也可以用整数形式输出。在这里插入图片描述

s格式符:用来输出一个字符串。

  • %s , 输出字符串
  • %ms , 输出的字符串占m列,如字符串本身的长度大于m,则突破m的限制,将字符串全部输出。若串长小于m,则左补空格。
  • %-ms , 如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
  • %m.ns , 输出占m列,但只取字符换左端n个字符。这个n个字符输出在m列的右侧,左补空格。
  • %-m.ns , 其中m,n含义同上,n个字符输出在m列范围的左侧,右补空格。

在这里插入图片描述

f格式符:用来输出实数(包括单%f,双精度%lf),以小数形式输出。

  • %f , 不指定字段宽段,由系统自动指定,使整数部分全部如数输出,并输出6位小数,第七位四舍五入。单精度实数的有效位数一般为7位。
    在这里插入图片描述
    显然,只有前七位数字是有效数字。千万不要以为凡是打印出来的数字都是准确的。双精度也可以用%f格式输出,它的有效位数一般为16位,输出小数6位。
  • %m.nf , 指定输出的数据共占m列(含小数点),其中有n位小数,如果数值长度小于m,则左端补空格。
  • %-m.nf , 与 %m.nf 基本相同,只是使输出的数值向左端靠,右端补空格。
    在这里插入图片描述

e格式符:以指数形式输出实数。

  • %e , 不指定输出数据所占宽度和数字部分小数位数,由系统自动指定给出6位小数,指数部分占5位(如e+002),其中"e"占一位,指数符号占一位,指数占3位。数值按标准化指数形式输出(即小数点前必须有而且只有一位非零数字)。
例如: 1.234560e+002   # 也就是说用%e格式输出的实数共占13列宽度
  • %m.ne 和 %-m.ne , m、n和"-"字符含义与前相同。此处n指数据的数字部分(又称尾数)的小数位数。
    在这里插入图片描述

总结

格式字符说明
d以带符号的十进制形式输出整数(正数不输出符号)。
o以8进制无符号形式输出整数(不输出前导符0)。
x(X)以16进制无符号形式输出整数(不输出前导符0x)。
u以无符号10进制形式输出整数。
c以字符形式输出,只输出一个字符。
s输出字符串。
f以小数形式输出单、双精度数,隐含输出6位小数。
e(E)以标准指数形式输出单、双精度数,数字部分小数位数为6位。

格式说明中,在%和上述格式字符间可以插入以下几种附加符号

字符说明
字母l(L)用于长整型整型,可加在格式符d、o、X、u前面。
m(代表一个正整数)数据最小宽度。
.n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数。
-输出的数字或字符在域内向左靠。

在用printf函数输出时,务必注意数据类型应与上述格式说明匹配,否则将会出现错误!!

在使用printf函数时,还有几点要说明:

  • 系统要求除e(E)格式和x(X)格式外,字符要用小写字母,如%d不能写成%D。

  • 可以在printf函数中的“格式控制”字符串内包含“转义字符”。

  • 如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示

如:  print("%f%%",1.0/3);   # 输出.33333%

scanf函数(格式输入函数)

一般形式:

scanf("格式控制字符串",输入项地址列表)
  • ?格式控制字符串规定数据的输入格式,其内容与printf函数相同,包含格式说明符和普通字符(原样输入)。
  • ?输入项地址列表则由 一个或多个变量地址组成,可以是变量的地址,或字符串(数组)的首地址。

格式说明:

  • 和printf函数中的格式说明相似,以%开始,以一个格式字符结束,中间可以插入附加的字符。
格式字符说明
d用来输入有符号十进制整数。
u用来输入无符号十进制整数。
o用来输入八进制整数。
x(X)用来输入十六进制整数。
c用来输入单个字符。
s用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志“\0”作为其最后一个字符。
f用来输入实数,可以用小数形式或指数形式输入。
e(E)与f作用相同,e与f可以互相替换。
l(L)用于输入长整型数据(可用%1d, %10, %1x), 以及doubel型数据(用%1f或%1e) .
h用于输入短整型数据(可用%hd, %ho, %hx)
域宽m(为一正整数)指定输入数据所占宽度 (列数)。
*表示本输入项在读入后不赋给相应的变量。

说明

  • 对于unsigned型变量的数据,可以使用%u%d%0%x格式输入。
  • 可以指定输入数据所占列数,系统自动按他截取所需数据。
: scanf("%3d%3d",&a,&b)  # 输入 123456  系统自动将123赋值给a,456赋值给b 
  • %后的"*"附加说明符,*表示按规定格式输入但不赋予相应的变量,作用是跳过相应的数据,即在地址列表中没有对应的输入项。

在这里插入图片描述

  • 输入数据时不能规定其精度。
例如: scanf("%7.2f",&a);

scanf 函数在执行时应注意的问题

(1) scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。

(2)如果在“格式控制”字符串中除了格式说明以外还有其它普通字符,与printf函数的普通字符不同,scanf 函数的格式控制字符串中普通字符是不显示的,而是规定了输入时必须输入的字符,即在输入时,格式控制字符串中的字符要原样输入。

(3)在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。

(4)输入的数据之间需要添加分隔符。如果在格式控制串中设定了分隔符,则按设定的分隔符输入数据,如果没有分隔符,在输入数据时,遇以下情况时该数据认为结束:

  • ①遇空格,或按“回车”或“跳格”(TAB)键。

  • ②遇宽度结束,如“%3d";只取3列。laduob

  • ③非法输入。如scanf("%d%c%f" ,&a,&b,&c);

在这里插入图片描述
(5)格式控制串中设定的输入类型应该与变量类型一致,否则变量的值会出现问题。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 23:54:43  更:2021-07-24 23:54:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 7:53:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码