《C++语言入门经典》一2.3 数据的输入与输出

2.3 数据的输入与输出

在用户与计算机交互的过程中,数据输入和数据输出是必不可少的操作过程,计算机需要
通过输入获取来自用户的操作指令,并通过输出来显示操作结果。本节将介绍数据输入与输出
的相关内容。

2.3.1 格式输出函数

C++语言中保留了C语言中的屏幕输出函数printf。使用printf可以将任意数量和类型的数据
输出到屏幕。
printf函数的作用是向终端(输出设备)输出若干任意类型的数据。printf函数的一般格
式为:
printf(格式控制,输出列表)
括号内包括格式控制和输出列表两部分。

(1)格式控制
格式控制是用双引号引起来的字符串,也称为转换控制字符串。其中包括两种字符,一种
是格式字符,另一种是普通字符。
格式字符用来进行格式说明,其作用是将输出的数据转化为指定的格式输出。格式字
符以“%”字符开头。
普通字符是需要原样输出的字符,其中包括双引号内的逗号、空格和换行符。
(2)输出列表
输出列表中列出的是要输出的一些数据,也可以是变量或表达式。
例如,要输出一个整型变量时,可以用下面的语句:

int iInt=10;
printf("this is %d",iInt);

执行上面的语句显示出来的字符是“this is 10”。在格式控制双引号中的字符是“this is
%d”,其中的“this is”字符串是普通字符,而“%d”是格式字符,表示输出的是后面iInt 的
数据。
由于printf是函数,“格式控制”和“输出列表”都是函数的参数,因此printf函数的一般
形式也可以表示为:
printf(参数1,参数2,…,参数n)
函数中的每一个参数按照给定的格式和顺序依次输出。例如,显示一个字符型变量和整型
变量的语句如下:

printf("the Int is %d,the Char is %c",iInt,cChar);

表2.4中列出了有关printf函数的格式字符及其功能说明。

【例2.2】 使用格式输出函数printf。
在本实例中,使用printf函数对不同类型变量进行输出,对使用printf函数所用到的输出格
式进行分析。

实例位置:光盘MR源码第2章2.2

#include "stdafx.h"
int main()
{
 int iInt=10; /*定义整型变量*/
 char cChar='A'; /*定义字符型变量*/
 float fFloat=12.34f; /*定义单精度浮点型*/
 printf("the int is: %d\n",iInt); /*使用printf函数输出整型*/
 printf("the char is: %c\n",cChar); /*输出字符型*/
 printf("the float is: %f\n",fFloat); /*输出浮点型*/
 printf("the stirng is: %s\n","I LOVE YOU"); /*输出字符串*/
 return 0;
}

上述程序中,定义了一个整型变量iInt,并在printf函数中使用格式字符%d进行输出;为字
符型变量cChar赋值为'A',在printf函数中使用格式字符%c输出字符。格式字符%f用来输出实
型变量的数值。在最后一个printf输出函数中,使用%s将一个字符串输出,字符串内容不包括
双引号。

另外,在格式说明中,在%符号和上述格式字符间可以插入几种附加格式说明字符,如
表2.5所示。

说明
1)在使用printf 函数时,除X、E、G外,其他格式字符必须用小写字母,如%d 不能写
成%D 。
2)如果想输出“%”符号,则需要在格式控制处使用“%%”进行输出。

【例2.3】 在printf函数中使用附加符号。
在本实例中,使用printf 函数的附加格式说明字符,对输出的数据进行更为精确的格式
设计。
实例位置:光盘MR源码第2章2.3

#include "stdafx.h"
int main()
{
 long iLong=100000; /*定义长整型变量,为其赋值*/
 printf("the Long is %ld\n",iLong); /*输出长整型变量*/
 printf("the string is: %s\n","LOVE"); /*输出字符串*/
 printf("the string is: %10s\n","LOVE"); /*使用m控制输出列*/
 printf("the string is: %-10s\n","LOVE"); /*使用-表示向左靠拢*/
 printf("the string is: %10.3s\n","LOVE"); /*使用n表示取字符数*/
 printf("the string is: %-10.3s\n","LOVE");
 return 0;
}

1)在程序代码中,在使用printf 函数对定义的长整型变量进行输出时,应该在%d 格式字
符中添加l字符,继而输出长整型变量。
2)%s 用来输出一个字符串的格式字符,在结果中可以看到输出了字符串“LOVE”。
3)%10s 为格式%ms,表示输出字符串占m列,如果字符串本身长度大于m,则突破m
的限制,将字符串全部输出;若字符串小于m,则用空格进行左补齐。可以看到在字符串
“LOVE”前后存在6个空格。
4)%-10s 格式为%-ms,表示如果字符串长度小于m,则在m列范围内,字符串向左靠,右
补空格。
5)%10.3s 格式为%m.ns,表示输出占m列,但只取字符串左端n个字符。这n个字符输出在
m列的右侧,左补空格。
6)%-10.3s 格式为%-m.ns,其中m、n含义同上,n个字符输出在m列范围内的左侧,右补
空格。如果n>m,则m自动取n值,即保证n个字符正常输出。
程序运行结果如图2.3所示。

2.3.2 格式输入函数

与格式输出函数printf相对应的是格式输入函数scanf。该函数的功能是指定固定的格式,

 并且按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。
scanf函数的一般格式为:
scanf(格式控制,地址列表)
从scanf 函数的一般格式可以看出,参数位置中的格式控制与printf 函数的相同。例如,%d
表示十进制的整型,%c表示单字符。而在地址列表中,此处应该给出用来接收数据变量的地
址。例如,得到一个整型数据的操作如下:
scanf("%d",&iInt); /得到一个整型数据/
在上面的代码中,&符号表示取iInt变量的地址,因此不用关心变量的地址具体是多少,
只要在代码中变量的标识符前加&符号,就表示取变量的地址。
说明
编写程序时,在scanf函数的参数地址列表处,一定要使用变量的地址,而不是变量的
标识符,否则编译器会提示出错。
表2.6中列出了scanf函数中使用的格式字符及其功能说明。

说明
格式字符%s 用来输入字符串。将字符串送到一个字符数组中,在输入时以非空白字符
开始,以第一个空白字符结束。字符串以串结束标志“0”作为最后一个字符。
【例2.4】 使用scanf格式输入函数得到用户输入的数据。
在本实例中,利用scanf函数得到用户输入的两个整型数据,因为scanf函数只能用于输入
操作,所以若要在屏幕上显示信息,则需要使用显示函数。
实例位置:光盘MR源码第2章2.4

#include "stdafx.h"
int main()
{
 int iInt1,iInt2; /*定义两个整型变量*/
 puts("Please enter two numbers:"); /*通过puts函数输出提示信息的字符串*/
 scanf("%d%d",&iInt1,&iInt2); /*通过scanf函数得到输入的数据*/
 printf("The first is : %d\n",iInt1); /*显示第一个输入的数据*/
 printf("The second is : %d\n",iInt2); /*显示第二个输入的数据*/
 return 0;
}

1)为了能接收用户输入的整型数据,在程序代码中定义了两个整型变量iInt1和iInt2。
2)因为scanf函数只能接收用户输入的数据,而不能显示信息,所以先使用puts函数输出
一段字符表示信息提示。puts函数在输出字符串之后会自动进行换行,这样就可以省去使用换
行符的麻烦。
3)调用scanf 格式输入函数,在函数参数中可以看到,在格式控制的位置使用双引号将格
式字符包括,%d 表示输入的为十进制的整数。在参数中的地址列表位置,使用&符号表示变
量的地址。
4)此时变量iInt1 和iInt2 已经得到了用户输入的数据,调用printf 函数将变量进行输出,这
里要注意区分的是printf函数使用的是变量的标识符,而不是变量的地址。scanf函数使用的是
变量的地址,而不是变量的标识符。
说明
程序是怎样将输入的内容分别保存到指定的两个变量中的呢?原来,scanf函数使用空
白字符分隔输入的数据,这些空白字符包括空格符、换行符、制表符(Tab )。如在
本程序中,使用换行符作为空白字符。

在printf函数中,除了格式字符外,还有附加格式用于更为具体的说明,相应地,scanf函
数中也有附加格式说明字符用于更为具体的格式说明,如表2.7所示。

【例2.5】 使用附加格式说明scanf函数的格式输入。
在本实例中,将所有scanf附加格式都进行格式输入的说明,通过这些指定格式的输入,
对比输入前后的结果,观察其附加格式的效果。
实例位置:光盘MR源码第2章2.5

#include "stdafx.h"
int main()
{
时间: 2024-07-29 18:41:46

《C++语言入门经典》一2.3 数据的输入与输出的相关文章

《C++语言入门经典》一第2章 与计算机交流的手段——数据的计算、输入与输出2.1 C++语言基本要素

第2章 与计算机交流的手段--数据的计算.输入与输出 视频讲解:128分钟 通过鼠标.键盘等设备,我们可以将指令发送给计算机,而计算机会将执行结果显示出来.这就是输入与输出.输入设备的信号,显示器上体现的图形.文字,甚至喇叭发出的声音在计算机中的体现都是数据,它是计算机信息的载体. 通过学习本章,读者可以达到以下学习目的: C++语言的基本要素 数据类型 数据的输入与输出 运算符 结合性和优先级 表达式 语句.左值与右值 2.1 C++语言基本要素 通常程序设计语言的基本要素包括标识符.关键字.

《C++语言入门经典》一1.2 Visual Studio 2010 集成编译环境

1.2 Visual Studio 2010 集成编译环境 C++的开发环境有很多种,例如,常见的Visual C++ 6.0 等.Visual Studio 2010 是微软公司继Visual C++ 6.0 之后新设计的集成开发环境,它更加支持C++标准规范,对新标准--C++0x 提供全面的支持.下面就来介绍它的使用方法. 1.2.1 安装Visual Studio 2010 在安装Visual Studio 2010 之前,首先要了解安装Visual Studio 2010 的必备条件,

《C++语言入门经典》一导读

前 言 C++语言是在C语言的基础上发展起来的,它在C语言的基础上融合了许多新的有利于程序开发的编程理念.C++语言是一种规范,它规范了程序员如何进行面向对象的程序开发. C++语言还具有C语言底层操作的能力,同时具备高效率代码重用的面向对象技术.C++语言的特点是语句灵活.使用简洁.技术全面. 目前,关于C+ +语言的书籍有很多,但是真正从初学者的角度出发并把技术及应用讲解透彻的并不是很多.本书从初学者的角度出发,为想要学习C+ +编程.使用C+ +从事软件开发的初中级程序开发人员.编程爱好者

C语言数据的输入与输出(一)

在程序的运行过程中,往往需要由用户输入一些数据,而程序运算所得到的计算结果等又需要输出给用户,由此实现人与计算机之间的交互,所以在程序设计中,输入输出语句是一类必不可少的重要语句,在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I/O库函数的调用实现.最常用的输入输出函数有scanf().printf().getchar()和putchar(),以下分别介绍.3.2.1scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应

《C++语言入门经典》一2.2 数据类型

2.2 数据类型 C++语言中常用的数据类型有数值类型.字符类型.数组类型.布尔类型.枚举类型.结 构体类型.共用体类型.指针类型.引用类型和自定义类型.本节将详细介绍这些数据类型. 2.2.1 数值类型 在C++语言中,数值类型主要分为整型和实型(浮点类型)两类.其中,整型按符号划分 可以分为有符号型和无符号型两类:按长度划分可以分为普通整型.短整型和长整型三类,整 型的分类如表2.2所示. 在程序中使用实型数据时需要注意以下两点. (1)实数的相加 实型数据的有效数字是有限制的,如单精度fl

《C++语言入门经典》一第3章 重要的逻辑工具——判断与循环 3.1 条件判断

第3章 重要的逻辑工具--判断与循环 视频讲解:90分钟 一个大的问题需要分成若干个小的问题才能够得到解决.C++语言提供了分支语句与循环语句.当需要一个条件影响到问题的结论时,我们需要判断语句:当需要执行若干个相同的指令时,我们需要循环语句. 通过学习本章,读者可以达到以下学习目的:掌握3种形式的判断语句了解条件运算符与判断语句的转换掌握switch分支语句掌握判断语句的嵌套了解3种循环语句掌握各种循环的区别了解循环的跳转掌握循环的嵌套 3.1 条件判断 计算机的主要功能是提供计算功能,但在计

《C++语言入门经典》一2.4 运算符

2.4 运算符 运算符就是具有运算功能的符号.C++语言中有丰富的运算符,其中有很多都是从C语言 继承下来的,它新增的运算符有作用域运算符(::),成员指针运算符(->). 和C语言一样,根据使用运算符的对象个数,C++语言中可以将运算符分为单目运算符. 双目运算符和三目运算符.根据使用运算符的对象之间的关系,可以将运算符分为算术运算 符.关系运算符.逻辑运算符.赋值运算符.位运算符.移位运算符.sizeof 运算符.条件运 算符和逗号运算符. 2.4.1 算术运算符 算术运算主要是指常用的加(

《C++语言入门经典》一2.8 左值与右值

2.8 左值与右值 C++中的每个语句.表达式的结果分为左值与右值两类.左值指的是内存中持续存储的数 据,而右值是指临时存储的结果. 在程序中,声明过的独立变量如: Int k; short p; char a; 它们都是左值.又如: Int a = 0; Int b = 2; Int c = 3;   a = c-b; b = a++; c = ++a; c--; c-b是一个存储表达式结果的临时数据,它的结果将被复制到a中,它是一个右值.a++自 增的过程实质上是一个临时变量执行了表达式,而

《C++语言入门经典》一1.4 小结

1.4 小结 本章简单介绍了C++语言的发展情况和集成环境Microsoft Visual Studio 2010 的使用方法, 并编写了一个简单的HelloWorld 程序,使刚刚接触编写程序的读者熟悉C++项目从编写到运行的流程.