4.3 SE38数据输出

4.3 SE38数据输出

4.3.1 数据的基本输出

数据的基本输出,使用WRITE语句进行数据对象的输出,WRITE语句在输出时可以控制数据对象的长度,输出位置以及格式等属性的控制。同时可以输出多个数据对象,不同的数据可以通过反斜杠“/”进行换行输出。

WRITE语法结构如下:

WRITE AT [ / ] [ <pos> ] [( len) ] 数据对象

/ : 换行

pos : 首行缩进的字位数

(len) : 显示输出的长度

WRITE: ‘第一行显’.

WRITE: /, ‘第二行 各行显示’.

DATA: number   TYEP i VALUE ‘0123456789’.

      description TYPE c VALUE ‘ABCDEFGHIJKLMN’.

WRITE: (5) number.

WRITE: /, (6) description.

4.3.2 数据的格式化输出

使用系统预定义的格式参数,对于输出对象进行特定的格式显示。

WRITE语法输出特定格式结构如下:

WRITE <输出对象> <显示格式参数>

常用的显示参数如下:

LEFT-JUSTIFIED        

靠左显示

CENTERED

靠中间显示

RIGHT-JUSTIFIED

靠右显示

UNDER <g>

在<g>的X轴开始坐标显示

NO-GAP

紧接着显示, 不留空格

USING EDIT MASK <m>

使用内嵌字符显示, 如 11:20:30

USING NO EDIT MASK

不使用内嵌字符

NO-ZERO

数字前面0 的部分不显示

NO-SIGN

不显示正负号

DECIMALS <d>

显示 d 位小数字数

EXPONENT <e>

F(浮点数) exponent 的值

ROUND <r>

四舍五入至小数位数下 r 位

CURRENCY <c>

币别显示

DD/MM/YY

日期显示格式

MM/DD/YY

日期显示格式

DD/MM/YYYY

日期显示格式

MM/DD/YYYY

日期显示格式

DDMMYY

日期显示格式

MMDDYY

日期显示格式

YYMMDD

日期显示格式

4.3.2.1 NO-ZORE

如果输出的对象是N或者C类型,将前面的0取代为空格。

4.3.2.2 NO-GROUPING

对于I或P类型,省略千分符号

4.3.2.3 定义日期输出格式

4.3.2.4 CURRENCY w

使货币字段按格式输出,w代表货币单位,维护表TCURX中货币类型时有效。

4.3.2.5 DECIMALS d

控制输出数值小数位

4.3.2.6 字符串按某一偏移量进行输出,即可以截取字符串中的一段。

4.3.2.7 EXPONENT

对于浮点型数值,输出采用科学计数法。

4.3.2.8 ROUND r

移除数值左边或右边的r位小数

4.3.2.9 TIME ZONE tz

实现不同时区的时间转换

4.3.2.10 USING EDIT MASK

输出数据自定义格式

4.3.2.11 UNDER

参照上一行输出位置并列输出,只对WRITE语句有效。

4.3.2.12 NO-GAP

去除输出值间的空格,该语法只对WRITE语句有效。

4.3.2.12 LEFT-JUSTIFIED RIGHT-JUSTIFIED CENTERED

LEFT-JUSTIFIED 向左对齐

RIGHT-JUSTIFIED 向右对齐

CENTERED居中对齐

不同的数据类型都会有各自默认的对齐方式,基本数据类型输出的对齐方式如下:

C= LEFT-JUSTIFIED向左对齐

I= RIGHT-JUSTIFIED向右对齐

P= RIGHT-JUSTIFIED向右对齐

F= RIGHT-JUSTIFIED向右对齐

N= LEFT-JUSTIFIED向左对齐

D= LEFT-JUSTIFIED向左对齐

T= LEFT-JUSTIFIED向左对齐

X= LEFT-JUSTIFIED向左对齐

4.3.3 产生n个空白行输出

产生n个空白行

语法结构如下:

SKIP [<n>]

4.3.4 跳到指定行显示

语法结构如下:

SKIP TO LINE 行号

4.3.5 显示图标

事务码SE11可以查看系统图标

4.3.6 显示复选框数据

赋值时,显示勾选值为 X,显示不勾选值为 空。

4.3.7 颜色输出

2021年9月8日 写于芜湖

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基本信息 作者: 林信良 丛书名: 学习笔记 出版社:清华大学出版社 ISBN:9787302282082 上架时间:2012-5-9 出版日期:2012 年5月 开本:16开 页码:564 版次:1-1 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java 编辑推荐   Jworld@TW技术论坛版主,Java权威技术顾问与专业讲师,Java畅销书作者——林信良全新力作。    国内第一本Java 7,前期版本累计销量5万册。    《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或范例程序代码,都做了全面重新编写与翻新。    《Java JDK 7学习笔记》是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上的各种问题及解决方案。    《Java JDK 7学习笔记》详细介绍了JVM、JRE、Java SE API、JDK与IDE之间的对应关系。必须要时从Java SE API的源代码分析,了解各种语法在Java SE API中如何应用。    《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍   《java jdk 7学习笔记》是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习java时遇到的概念、操作、应用或认证考试等问题及解决方案。    《java jdk 7学习笔记》针对java se 7新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新。并详细介绍了jvm、jre、java se api、jdk与ide之间的对照关系。必要时从java se api的源代码分析,了解各种语法在java se api中如何应用。对于建议练习的范例提供lab文档,以突出练习重点。此外,本书还将ide操作纳为教学内容之一,让读者能与实践相结合,提供的教学视频让读者可以更清楚地掌握操作步骤。    《java jdk 7学习笔记》适合java的初中级读者,以及广大java应用开发人员。 作译者 林信良(网名:良葛格) 学历:台湾大学电机工程学系 经历:台湾升阳教育训练技术顾问、专业讲师,oracle授权训练中心讲师 著作:《java jdk 5.0学习笔记》、《java se 6技术手册》、《spring技术手册》等 译作:《ajax实战手册》、《jquery实战手册(第2版)》 个人网站:http://openhome.cc 目录 《java jdk 7学习笔记》 chapter1 java平台概论 1 1.1 java不只是语言 2 1.1.1 前世今生 2 1.1.2 三大平台 5 1.1.3 jcp与jsr 6 1.1.4 建议的学习路径 7 1.2 jvm/jre/jdk 11 1.2.1 什么是jvm 11 1.2.2 区分jre与jdk 14 1.2.3 下载、安装jdk 15 1.2.4 认识jdk安装内容 18 1.3 重点复习 19 1.4 课后练习 20 chapter2 从jdk到ide 21 2.1 从hello world开始 22 2.1.1 撰写java原始码 22 2.1.2 path是什么 24 2.1.3 jvm(java)与classpath 27 2.1.4 编译程序(javac)与classpath 30 .2.2 管理原始码与位码文档 31 2.2.1 编译程序(javac)与sourcepath 31 2.2.2 使用package管理类 33 2.2.3 使用import偷懒 36 2.3 使用ide 38 2.3.1 ide项目管理基础 38 2.3.2 使用了哪个jre 43 2.3.3 类文档版本 45 2.4 重点复习 48 2.5 课后练习 49 chapter3 基础语法 53 3.1 类型、变量与运算符 54 3.1.1 类型 54 3.1.2 变量 57 3.1.3 运算符 60 3.1.4 类型转换 66 3.2 流程控制 69 3.2.1 if...else条件式 69 3.2.2 switch条件式 72 3.2.3 for循环 74 3.2.4 while循环 75 3.2.5 break、continue 77 3.3 重点复习 78 3.4 课后练习 79 chapter4 认识对象 83 4.1 类与对象 84 4.1.1 定义类 84 4.1.2 使用标准类 87 4.1.3 对象指定与相等性 90 4.2 基本类型打包器 91 4.2.1 打包基本类型 91 4.2.2 自动装箱、拆箱 92 4.2.3 装箱的内幕 93 4.3 数组对象 96 4.3.1 数组基础 96 4.3.2 操作数组对象 99 4.3.3 数组复制 105 4.4 字符串对象 108 4.4.1 字符串基础 108 4.4.2 字符串特性 111 4.4.3 字符串编码 115 4.5 查询java api文件 117 4.6 重点复习 119 4.7 课后练习 120 chapter5 对象封装 125 5.1 何谓封装 126 5.1.1 封装对象初始流程 126 5.1.2 封装对象操作流程 128 5.1.3 封装对象内部数据 131 5.2 类语法细节 134 5.2.1 public权限修饰 134 5.2.2 关于构造函数 136 5.2.3 构造函数与方法重载 137 5.2.4 使用this 139 5.2.5 static类成员 142 5.2.6 不定长度自变量 148 5.2.7 内部类 150 5.2.8 传值调用 151 5.3 重点复习 154 5.4 课后练习 155 chapter6 继承与多态 161 6.1 何谓继承 162 6.1.1 继承共同行为 162 6.1.2 多态与is-a 166 6.1.3 重新定义行为 170 6.1.4 抽象方法、抽象类 173 6.2 继承语法细节 174 6.2.1 protected成员 174 6.2.2 重新定义的细节 176 6.2.3 再看构造函数 178 6.2.4 再看final关键字 180 6.2.5 java.lang.object 181 6.2.6 关于垃圾收集 186 6.2.7 再看抽象类 189 6.3 重点复习 191 6.4 课后练习 192 chapter7 接口与多态 199 7.1 何谓接口 200 7.1.1 接口定义行为 200 7.1.2 行为的多态 204 7.1.3 解决需求变化 206 7.2 接口语法细节 213 7.2.1 接口的默认 213 7.2.2 匿名内部类 217 7.2.3 使用enum枚举常数 221 7.3 重点复习 224 7.4 课后练习 224 chapter8 异常处理 231 8.1 语法与继承架构 232 8.1.1 使用try、catch 232 8.1.2 异常继承架构 235 8.1.3 要抓还是要抛 238 8.1.4 认识堆栈追踪 241 8.1.5 关于assert 245 8.2 异常与资源管理 247 8.2.1 使用finally 247 8.2.2 自动尝试关闭资源 249 8.2.3 java.lang.autocloseable接口 251 8.3 重点复习 255 8.4 课后练习 256 chapter8 collection与map 261 9.1 使用collection收集对象 262 9.1.1 认识collection架构 262 9.1.2 具有索引的list 263 9.1.3 内容不重复的set 266 9.1.4 支持队列操作的queue 270 9.1.5 访问对象的iterator 273 9.1.6 排序收集的对象 276 9.1.7 使用泛型 280 9.2 键值对应的map 284 9.2.1 常用map操作类 284 9.2.2 访问map键值 288 9.3 重点复习 291 9.4 课后练习 292 chapter10 输入输出 299 10.1 inputstream与outputstream 300 10.1.1 串流设计的概念 300 10.1.2 串流继承架构 303 10.1.3 串流处理装饰器 306 10.2 字符处理类 311 10.2.1 reader与writer继承架构 311 10.2.2 字符处理装饰器 313 10.3 重点复习 315 10.4 课后练习 316 10.4.1 选择题 316 10.4.2 操作题 317 chapter11 线程与并行api 319 11.1 线程 320 11.1.1 线程简介 320 11.1.2 thread与runnable 323 11.1.3 线程生命周期 324 11.1.4 关于threadgroup 331 11.1.5 synchronized与volatile 334 11.1.6 等待与通知 345 11.2 并行api 349 11.2.1 lock、readwritelock与condition 349 11.2.2 使用executor 357 11.2.3 并行collection简介 370 11.3 重点复习 373 11.4 课后练习 375 chapter12 通用api 377 12.1 日志 378 12.1.1 日志api简介 378 12.1.2 指定日志层级 380 12.1.3 使用handler与formatter 382 12.1.4 自定义handler、formatter与 filter 383 12.1.5 使用logging.properties 385 12.2 国际化基础、日期 387 12.2.1 关于i18n 387 12.2.2 使用date与dateformat 390 12.2.3 使用calendar 393 12.3 规则表示式 395 12.3.1 定义规则表示式 396 12.3.2 pattern与matcher 403 12.4 nio2文件系统 405 12.4.1 api架构概述 405 12.4.2 操作路径 406 12.4.3 属性读取与设定 409 12.4.4 操作文档与目录 412 12.4.5 读取、访问目录 414 12.4.6 过滤、搜索文档 418 12.5 重点复习 421 12.6 课后练习 422 chapter12 窗口程序设计 425 13.1 swing入门 426 13.1.1 简易需求分析 426 13.1.2 swing组件简介 427 13.1.3 设计主窗口与菜单列 429 13.1.4 关于版面管理 433 13.1.5 事件处理 436 13.2 文档打开、存储与编辑 442 13.2.1 操作打开文档 442 13.2.2 制作存储、关闭文档 445 13.2.3 文字区编辑、剪切、复制、粘贴 448 13.3 重点复习 449 13.4 课后练习 451 chapter14 整合数据库 444 14.1 jdbc入门 454 14.1.1 jdbc简介 454 14.1.2 连接数据库 458 14.1.3 使用statement、resultset 464 14.1.4 使用preparedstatement、callablestatement 469 14.2 jdbc进阶 472 14.2.1 使用datasource取得联机 472 14.2.2 使用resultset卷动、更新数据 476 14.2.3 批次更新 479 14.2.4 blob与clob 480 14.2.5 交易简介 481 14.2.6 metadata简介 489 14.2.7 rowset简介 492 14.3 重点复习 496 14.4 课后练习 497 chapter15 反射与类加载器 499 15.1 运用反射 500 15.1.1 class与.class文档 500 15.1.2 使用class.forname() 502 15.1.3 从class获得信息 503 15.1.4 从class建立对象 506 15.1.5 操作对象方法与成员 509 15.1.6 动态代理 512 15.2 了解类加载器 515 15.2.1 类加载器层级架构 515 15.2.2 建立classloader实例 518 15.3 重点复习 520 15.4 课后练习 521 chapter16 自定义泛型、枚举与标注 523 16.1 自定义泛型 524 16.1.1 定义泛型方法 524 16.1.2 使用extends与? 525 16.1.3 使用super与? 530 16.2 自定义枚举 533 16.2.1 了解java.lang.enum类 533 16.3 关于注释 542 16.3.1 常用标准注释 542 16.3.2 自定义注释类型 545 16.3.3 执行时期读取注释信息 549 16.4 重点复习 551 16.5 课后练习 551 appendixa 如何使用本书项目 553 a.1 项目环境配置 554 a.2 打开案例 554 appendixb mysql入门 557 b.1 安装、设定mysql 558 b.2 mysql的数据类型 560 b.3 建立数据库、数据表 561 b.4 进行crud操作 562
第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统的变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l. 6 机器语言、汇编语言和高级语言 1.7 C语言与C++的历史 1.8 C++标准库 1.9 Java、Internet与万维网 1.10 其他高级语言 1.11 结构化编程 1.12 典型C++环境基础 1.13 C++与本书的一般说明 1.14 C++编程简介 1.15 简单程序:打印一行文本 1.16 简单程序:两个整数相加 1.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 练习 第2章 控制结构 2.1 简介 2.2 算法 2.3 伪代码 2.4 控制结构 2.5 if选择结构 2.6 if/e1se选择结构 2.7 while重复结构 2.8 构造算法:实例研究1(计数器控制重复) 2.9 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 2.10 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构) 2.11 赋值运算符 2.12 自增和自减运算符 2.13 计数器控制循环的要点 2.14 for重复结构 2.15 for结构使用举例 2.16 switch多项选择结构 2.17 do/while重复结构 2.18 break和continue语句 2.19 逻辑运算符 2.20 混淆相等(.==)与赋值(=)运算符 2.21 结构化编程小结 2.22 有关对象的思考:确定问题中的对象 小结 术语 自测练习 自测练习答案 练习 第3章 函数 3.1 简介 3.2 C++程序组件 3.3 数学函数库 3.4 函数 3.5 函数定义 3.6 函数原型 3.7 头文件 3.8 随机数产生器 3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 3.19 一元作用域运算符 3.20 函数重载 3.21 函数模板 3.22 有关对象的思考:确定对象属性 小结 术语 自测练习 自测练习答案 练习 第4章 数组 4.1 简介 4.2 数组 4.3 声明数组 4.4 使用数组的举例 4.5 将数组传递给函数 4.6 排序数组 4.7 实例研究:用数组计算平均值、中数和模 4.8 查找数组:线性查找与折半查找 4.9 多下标数组 4.10 有关对象的思考:确定类的行为 小结 术语 自测练习 自测练习答案 练习 递归练习 第5章 指针与字符串 5.1 简介 5.2 指针变量的声明与初始化 5.3 指针运算符 5.4 按引用调用函数 5.5 指针与常量限定符 5.6 按引用调用的冒泡排序 5.7 指针表达式与指针算法 5.8 指针与数组的关系 5.9 指针数组 5.10 实例研究:洗牌与发牌 5.11 函数指针 5.12 字符与字符串处理简介 5.12.1 字符与字符串基础 5.12.2 字符串处理库的字符串操作函数 5.13 有关对象的思考:对象间的交互 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的计算机 更多的指针练习 字符串操作练习 特殊小节:高级字符串操作练习 复杂字符串操作练习 第6章 类与数据抽象(一) 6.1 简介 6.2 结构定义 6.3 访问结构成员 6.4 用struct实现用户自定义类型Time 6.5 用类实现Time抽象数据类型 6.6 类范围与访问类成员 6.7 接口与实现方法的分离 6.8 控制对成员的访问 6.9 访问函数与工具函数 6.10 初始化类对象:构造函数 6.11 在构造函数中使用默认参数 6.12 使用析构函数 6.13 何时调用构造函数与析构函数 6.14 使用数据成员和成员函数 6.15 微妙的陷阱:返回对Private数据成员的引用 6.16 通过默认的成员复制进行赋值 6.17 软件复用性 6.18 有关对象的思考:编写电梯模拟程序的类 小结 术语 自测练习 自测练习答案 练习 第7章 类与数据抽象(二) 7. 1 简介 7.2 const(常量)对象与const成员函数 7.3 复合:把对象作为类成员 7.4 友元函数与友元类 7.5 使用this指针 7.6 动态内存分配与new和delete运算符 7.7 static类成员 7.8 数据抽象与信息隐藏 7.8.1 范例:数组抽象数据类型 7.8.2 范例:字符串抽象数据类型 7.8.3 范例:队列抽象数据类型 7.9 容器类与迭代 7.10 代理类 7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与友元函数的运算符函数 8.5 重载流插入与流读取运算符 8.6 重载一元运算符 8.7 重载二元运算符 8.8 实例研究:Array类 8.9 类型之间的转换 8.10 实例研究:String类 8.11 重载十十与—— 8.12 实例研究:Date类 小结 术语 自测练习 自测练习答案 练习 第9章 继承 9.1 简介 9.2 继承:基类和派生类 9.3 Protected成员 9.4 把基类指针强制转换为派生类指针 9.5 使用成员函数 9.6 在派生类中重定义基类成员 9.7 Public、Protected和Private继承 9.8 直接基类和间接基类 9.9 在派生类中使用构造函数和析构函数 9.10 将派生类对象隐式转换为基类对象 9.11 关于继承的软件工程 9.12 复合与继承的比较 9.13 对象的“使用”关系和“知道”关系 9.14 实例研究:类Point、CircIe和Cylinder 9.15 多重继承 小结 术语 自测练习 自测练习答案 练习 第10章 虚函数和多态性 10.1 简介 10.2 类型域和switch语句 10.3 虚函数 10.4 抽象基类和具体类 10.5 多态性 10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:继承接口和实现 10.10 多态、虚函数和动态关联 小结 术语 自测练习 自测练习答案 练习 第11章 C++输入/输出流 11.1 简介 11.2 流 11.2.1 iosbeam类库的头文件 11.2.2 输入/输出流类和对象 11.3 输出流 11.3.1 流插入运算符 11.3. 2 连续使用流插入/流读取运算符 11.3.3 输出char类型的变量 11.3.4 用成员函数put输出字符和put函数的连续调用 11.4 输入流 11.4.1 流读取运算符 11.4.2 成员函数get和getline 11.4.3 istream类中的其他成员函数(Peek、Putback和ignore) 11.4.4 类型安全的I/0 11.5 成员函数read、gcount和write的无格式输人/输出 11.6 流操纵算子 11.6.1 整数流的基数:流操纵算子dec、oct、hex和setbase 11.6.2 设置浮点数精度(Precision、setprecision) 11.6.3 设置域宽(setw、width) 11.6.4 用户自定义的流操纵算子 11.7 流格式状态 11.7.1 格式状态标志 11.7.2 尾数零和十进制小数点(ios:showpoint) 11.7.3 对齐(ios::left、ios::right、ios::internal) 11.7.4 设置填充字符(fill、setfill) 11.7.5 整数流的基数:(ios::dec、ios::oct、ios::hex、ios::showbase) 11. 7.6 浮点数和科学记数法(ios::scientific、ios::fixed) 11.7.7 大/小写控制(ios:uppercase) 11.7.8 设置及清除格式标志(flags、setiosflags、resetiosflags) 11.8 流错误状态 11.9 把输出流连到输入流上 小结 术语 自测练习 自测练习答案 练习 第12章 模板 12.1 简介 12.2 函数模板 12.3 重载模板函数 12.4 类模板 12.5 类模板与非类型参数 12.6 模板与继承 12.7 模板与友元 12.8 模板与static成员 小结 术语 自测练习 自测练习答案 练习 第13章 异常处理 13.1 简介 13.2 何时使用异常处理 13.3 其他错误处理方法 13.4 C十十异常处理基础:try、throw、catch 13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与异常处理 13.13 异常与继承 13.14 处理new故障 13.15 auto_ptr类与动态内存分配 13.16 标准库异常层次 小结 术语 自测练习 自测练习答案 练习 第14章 文件处理 14.1 简介 14.2 数据的层次 14.3 文件和流 14.4 建立顺序访问文件 14.5 读取顺序访问文件中的数据 14.6 更新顺序访问文件 14.7 随机访问文件 14.8 建立随机访问文件 14.9 向随机访问文件中随机地写入数据 14.10 从随机访问文件中顺序地读取数据 14.11 实例研究:事务处理程序 14.12 对象的输入/输出 小结 术语 自测练习 自测练习答案 练习 第15章 数据结构 15.1 简介 15.2 自引用类 15.3 动态内存分配 15.4 链表 15.5 堆栈 15.6 队列 15.7 树 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的编译器 第16章 位、字符、字符串和结构 16.1 简介 16.2 结构的定义 16.3 结构的初始化 16.4 函数和结构 16.5 类型定义:typedef 16. 6 范例:高效的洗牌和发牌模拟程序 16.7 位运算符 16.8 位段 16.9 字符处理库 16.10 字符串转换函数 16.11 字符串处理库中的查找函数 16.12 字符串处理库中的内存函数 16.13 字符串处理库中的其他函数 小结 术语 自测练习 自测练习答案 练习 第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 17.6 预处理指令#error和#pragma 17.7 运算符#和## 17.8 行号 17.9 预定义的符号常量 17.10 断言(宏assert) 小结 术语 自测练习 自测练习答案 练习 第18章 C语言遗留代码问题 18.1 简介 18.2 UNIX和DOS系统中的输入/输出重定向 18.3 变长参数表 18.4 使用命令行参数 18.5 对编译多个源文件程序的说明 18. 6 用edt和atexit终止程序的执行 18.7 volatile类型限定符 18.8 整数和浮点数常量的后缀 18.9 信号处理 18.10 动态内存分配:函数calloc和realloc 18.11 无条件转移:goto语句 18.12 联合体 18.13 连接指定 小结 术语 自测练习 自测练习答案 练习 第19章 string类与字符串流处理 19.1 简介 19.2 string的赋值与连接 19.3 比较string 19.4 子串 19.5 交换string 19.6 string的特性 19.7 寻找string中的字符 19.8 替换string中的字符 19.9 在string中插入字符 19.10 转换成C语言式char 字符串 19.11 迭代器 19.12 字符串流处理 小结 术语 自测练习 自测练习答案 练习 第20章 标准模板库(STL) 20.1 标准模板库(STL)简介 20.1.1 容器简介 20.1.2 迭代器简介 20.1.3 算法简介 20.2 顺序容器 20.2.1 vector顺序容器 20.2.2 1ist顺序容器 20.2.3 deque顺序容器 20.3 关联容器 20.3.1 multiset关联容器 20. 3.2 set关联容器 20.3.3 mdtimap关联容器 20.3.4 map关联容器 20.4 容器适配器 20.4.1 stack适配器 20.4.2 queue适配器 20.4.3 Priority_queue适配器 20.5 算法 20.5.1 fill、fill_n、generate与generate_n 20.5.2 equal、mismatch和1exicographical_compare 20.5.3 remove、remove_if、 remove_copy和remove_copy_if 20.5.4 replace、replace_if、replace_copy和replace_copy_if 20.5.5 数学算法 20.5.6 基本查找与排序算法 20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1ower—bound、 upper—bound和equal_range 20.5.12 堆排序 20.5.13 min和max 20.5.14 本章未介绍的算法 20.6 bitset类 20.7 函数对象 小结 术语 自测练习 自测练习答案 练习 Internet和World Wide Web中的STL资源 STL文献 第21章 ANSI/ISO C++标准语言补充 21.1 简介 21.2 bool数据类型 21.3 static—cast运算符 21.4 const—cast运算符 21.5 reinterpret—cast运算符 21.6 名字空间 21.7 运行时类型信息(RTTI) 21.8 运算符关键字 21.9 explicit构造函数 21.10 mutable类成员 21.11 类成员指针(.和—>) 21.12 多重继承与virtual基类 21.13 结束语 小结 术语 自测练习 自测练习答案 练习 附录A 运算符的优先级与结台律 附录B ASCII字符集 附录C 数值系统 附录D 有关C++的Internet与Web资源 参考文献 【媒体评论】
第1章 计算机与C++编程简介 1.1 简介 1.2 什么是计算机 1.3 计算机组成 1.4 操作系统的变革 I.5 个人计算、分布式计算与客户/a匠务器计算 l. 6 机器语言、汇编语言和高级语言 1.7 C语言与C++的历史 1.8 C++标准库 1.9 Java、Internet与万维网 1.10 其他高级语言 1.11 结构化编程 1.12 典型C++环境基础 1.13 C++与本书的一般说明 1.14 C++编程简介 1.15 简单程序:打印一行文本 1.16 简单程序:两个整数相加 1.17 内存的概念 1.18 算术运算 1.19 判断:相等与关系运算符 1.20 新型头文件与名字空间 1.21 有关对象的思考 小结 术语 自测练习 自测练习答案 练习 第2章 控制结构 2.1 简介 2.2 算法 2.3 伪代码 2.4 控制结构 2.5 if选择结构 2.6 if/e1se选择结构 2.7 while重复结构 2.8 构造算法:实例研究1(计数器控制重复) 2.9 构造算法与自上而下逐步完善:实例研究2(标记控制重复) 2.10 构造算法与自上而下逐步完善:实例研究3(嵌套控制结构) 2.11 赋值运算符 2.12 自增和自减运算符 2.13 计数器控制循环的要点 2.14 for重复结构 2.15 for结构使用举例 2.16 switch多项选择结构 2.17 do/while重复结构 2.18 break和continue语句 2.19 逻辑运算符 2.20 混淆相等(.==)与赋值(=)运算符 2.21 结构化编程小结 2.22 有关对象的思考:确定问题中的对象 小结 术语 自测练习 自测练习答案 练习 第3章 函数 3.1 简介 3.2 C++程序组件 3.3 数学函数库 3.4 函数 3.5 函数定义 3.6 函数原型 3.7 头文件 3.8 随机数产生器 3.9 案例:机会游戏与enum简介 3.10 存储类 3.11 作用域规则 3.12 递归 3.13 使用递归举例:Fibonacci数列 3.14 递归与迭代 3.15 带空参数表的函数 3.16 内联函数 3.17 引用与引用参数 3.18 默认参数 3.19 一元作用域运算符 3.20 函数重载 3.21 函数模板 3.22 有关对象的思考:确定对象属性 小结 术语 自测练习 自测练习答案 练习 第4章 数组 4.1 简介 4.2 数组 4.3 声明数组 4.4 使用数组的举例 4.5 将数组传递给函数 4.6 排序数组 4.7 实例研究:用数组计算平均值、中数和模 4.8 查找数组:线性查找与折半查找 4.9 多下标数组 4.10 有关对象的思考:确定类的行为 小结 术语 自测练习 自测练习答案 练习 递归练习 第5章 指针与字符串 5.1 简介 5.2 指针变量的声明与初始化 5.3 指针运算符 5.4 按引用调用函数 5.5 指针与常量限定符 5.6 按引用调用的冒泡排序 5.7 指针表达式与指针算法 5.8 指针与数组的关系 5.9 指针数组 5.10 实例研究:洗牌与发牌 5.11 函数指针 5.12 字符与字符串处理简介 5.12.1 字符与字符串基础 5.12.2 字符串处理库的字符串操作函数 5.13 有关对象的思考:对象间的交互 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的计算机 更多的指针练习 字符串操作练习 特殊小节:高级字符串操作练习 复杂字符串操作练习 第6章 类与数据抽象(一) 6.1 简介 6.2 结构定义 6.3 访问结构成员 6.4 用struct实现用户自定义类型Time 6.5 用类实现Time抽象数据类型 6.6 类范围与访问类成员 6.7 接口与实现方法的分离 6.8 控制对成员的访问 6.9 访问函数与工具函数 6.10 初始化类对象:构造函数 6.11 在构造函数中使用默认参数 6.12 使用析构函数 6.13 何时调用构造函数与析构函数 6.14 使用数据成员和成员函数 6.15 微妙的陷阱:返回对Private数据成员的引用 6.16 通过默认的成员复制进行赋值 6.17 软件复用性 6.18 有关对象的思考:编写电梯模拟程序的类 小结 术语 自测练习 自测练习答案 练习 第7章 类与数据抽象(二) 7. 1 简介 7.2 const(常量)对象与const成员函数 7.3 复合:把对象作为类成员 7.4 友元函数与友元类 7.5 使用this指针 7.6 动态内存分配与new和delete运算符 7.7 static类成员 7.8 数据抽象与信息隐藏 7.8.1 范例:数组抽象数据类型 7.8.2 范例:字符串抽象数据类型 7.8.3 范例:队列抽象数据类型 7.9 容器类与迭代 7.10 代理类 7.11 有关对象的思考:在电梯模拟程序中使用复合和动态对象管理 小结 术语 自测练习 自测练习答案 练习 第8章 运算符重载 8.1 简介 8.2 运算符重载的基础 8.3 运算符重载的限制 8.4 用作类成员与友元函数的运算符函数 8.5 重载流插入与流读取运算符 8.6 重载一元运算符 8.7 重载二元运算符 8.8 实例研究:Array类 8.9 类型之间的转换 8.10 实例研究:String类 8.11 重载十十与—— 8.12 实例研究:Date类 小结 术语 自测练习 自测练习答案 练习 第9章 继承 9.1 简介 9.2 继承:基类和派生类 9.3 Protected成员 9.4 把基类指针强制转换为派生类指针 9.5 使用成员函数 9.6 在派生类中重定义基类成员 9.7 Public、Protected和Private继承 9.8 直接基类和间接基类 9.9 在派生类中使用构造函数和析构函数 9.10 将派生类对象隐式转换为基类对象 9.11 关于继承的软件工程 9.12 复合与继承的比较 9.13 对象的“使用”关系和“知道”关系 9.14 实例研究:类Point、CircIe和Cylinder 9.15 多重继承 小结 术语 自测练习 自测练习答案 练习 第10章 虚函数和多态性 10.1 简介 10.2 类型域和switch语句 10.3 虚函数 10.4 抽象基类和具体类 10.5 多态性 10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:继承接口和实现 10.10 多态、虚函数和动态关联 小结 术语 自测练习 自测练习答案 练习 第11章 C++输入/输出流 11.1 简介 11.2 流 11.2.1 iosbeam类库的头文件 11.2.2 输入/输出流类和对象 11.3 输出流 11.3.1 流插入运算符 11.3. 2 连续使用流插入/流读取运算符 11.3.3 输出char类型的变量 11.3.4 用成员函数put输出字符和put函数的连续调用 11.4 输入流 11.4.1 流读取运算符 11.4.2 成员函数get和getline 11.4.3 istream类中的其他成员函数(Peek、Putback和ignore) 11.4.4 类型安全的I/0 11.5 成员函数read、gcount和write的无格式输人/输出 11.6 流操纵算子 11.6.1 整数流的基数:流操纵算子dec、oct、hex和setbase 11.6.2 设置浮点数精度(Precision、setprecision) 11.6.3 设置域宽(setw、width) 11.6.4 用户自定义的流操纵算子 11.7 流格式状态 11.7.1 格式状态标志 11.7.2 尾数零和十进制小数点(ios:showpoint) 11.7.3 对齐(ios::left、ios::right、ios::internal) 11.7.4 设置填充字符(fill、setfill) 11.7.5 整数流的基数:(ios::dec、ios::oct、ios::hex、ios::showbase) 11. 7.6 浮点数和科学记数法(ios::scientific、ios::fixed) 11.7.7 大/小写控制(ios:uppercase) 11.7.8 设置及清除格式标志(flags、setiosflags、resetiosflags) 11.8 流错误状态 11.9 把输出流连到输入流上 小结 术语 自测练习 自测练习答案 练习 第12章 模板 12.1 简介 12.2 函数模板 12.3 重载模板函数 12.4 类模板 12.5 类模板与非类型参数 12.6 模板与继承 12.7 模板与友元 12.8 模板与static成员 小结 术语 自测练习 自测练习答案 练习 第13章 异常处理 13.1 简介 13.2 何时使用异常处理 13.3 其他错误处理方法 13.4 C十十异常处理基础:try、throw、catch 13.5 简单异常处理例子:除数为o 13.6 抛出异常 13.7 捕获异常 13.8 再抛出异常 13.9 异常指定 13.10 处理意外异常 13.11 堆栈解退 13.12 构造函数、析构函数与异常处理 13.13 异常与继承 13.14 处理new故障 13.15 auto_ptr类与动态内存分配 13.16 标准库异常层次 小结 术语 自测练习 自测练习答案 练习 第14章 文件处理 14.1 简介 14.2 数据的层次 14.3 文件和流 14.4 建立顺序访问文件 14.5 读取顺序访问文件中的数据 14.6 更新顺序访问文件 14.7 随机访问文件 14.8 建立随机访问文件 14.9 向随机访问文件中随机地写入数据 14.10 从随机访问文件中顺序地读取数据 14.11 实例研究:事务处理程序 14.12 对象的输入/输出 小结 术语 自测练习 自测练习答案 练习 第15章 数据结构 15.1 简介 15.2 自引用类 15.3 动态内存分配 15.4 链表 15.5 堆栈 15.6 队列 15.7 树 小结 术语 自测练习 自测练习答案 练习 特殊小节:建立自己的编译器 第16章 位、字符、字符串和结构 16.1 简介 16.2 结构的定义 16.3 结构的初始化 16.4 函数和结构 16.5 类型定义:typedef 16. 6 范例:高效的洗牌和发牌模拟程序 16.7 位运算符 16.8 位段 16.9 字符处理库 16.10 字符串转换函数 16.11 字符串处理库中的查找函数 16.12 字符串处理库中的内存函数 16.13 字符串处理库中的其他函数 小结 术语 自测练习 自测练习答案 练习 第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 17.6 预处理指令#error和#pragma 17.7 运算符#和## 17.8 行号 17.9 预定义的符号常量 17.10 断言(宏assert) 小结 术语 自测练习 自测练习答案 练习 第18章 C语言遗留代码问题 18.1 简介 18.2 UNIX和DOS系统中的输入/输出重定向 18.3 变长参数表 18.4 使用命令行参数 18.5 对编译多个源文件程序的说明 18. 6 用edt和atexit终止程序的执行 18.7 volatile类型限定符 18.8 整数和浮点数常量的后缀 18.9 信号处理 18.10 动态内存分配:函数calloc和realloc 18.11 无条件转移:goto语句 18.12 联合体 18.13 连接指定 小结 术语 自测练习 自测练习答案 练习 第19章 string类与字符串流处理 19.1 简介 19.2 string的赋值与连接 19.3 比较string 19.4 子串 19.5 交换string 19.6 string的特性 19.7 寻找string中的字符 19.8 替换string中的字符 19.9 在string中插入字符 19.10 转换成C语言式char 字符串 19.11 迭代器 19.12 字符串流处理 小结 术语 自测练习 自测练习答案 练习 第20章 标准模板库(STL) 20.1 标准模板库(STL)简介 20.1.1 容器简介 20.1.2 迭代器简介 20.1.3 算法简介 20.2 顺序容器 20.2.1 vector顺序容器 20.2.2 1ist顺序容器 20.2.3 deque顺序容器 20.3 关联容器 20.3.1 multiset关联容器 20. 3.2 set关联容器 20.3.3 mdtimap关联容器 20.3.4 map关联容器 20.4 容器适配器 20.4.1 stack适配器 20.4.2 queue适配器 20.4.3 Priority_queue适配器 20.5 算法 20.5.1 fill、fill_n、generate与generate_n 20.5.2 equal、mismatch和1exicographical_compare 20.5.3 remove、remove_if、 remove_copy和remove_copy_if 20.5.4 replace、replace_if、replace_copy和replace_copy_if 20.5.5 数学算法 20.5.6 基本查找与排序算法 20.5.7 swap、iter_swap和swap_ranges 20.5.8 copy—backward、 merge、 unique和reverse 20.5.9 inplace_merge、 unique—copy和reverse—copy 20.5.10 集合操作 20.5.11 1ower—bound、 upper—bound和equal_range 20.5.12 堆排序 20.5.13 min和max 20.5.14 本章未介绍的算法 20.6 bitset类 20.7 函数对象 小结 术语 自测练习 自测练习答案 练习 Internet和World Wide Web中的STL资源 STL文献 第21章 ANSI/ISO C++标准语言补充 21.1 简介 21.2 bool数据类型 21.3 static—cast运算符 21.4 const—cast运算符 21.5 reinterpret—cast运算符 21.6 名字空间 21.7 运行时类型信息(RTTI) 21.8 运算符关键字 21.9 explicit构造函数 21.10 mutable类成员 21.11 类成员指针(.和—>) 21.12 多重继承与virtual基类 21.13 结束语 小结 术语 自测练习 自测练习答案 练习 附录A 运算符的优先级与结台律 附录B ASCII字符集 附录C 数值系统 附录D 有关C++的Internet与Web资源 参考文献 【媒体评论】
组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:[email protected] 译者:马东辉(eaststone ) 译文发布时间:2001-4-10 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。 Network Working Group D. Waitzman Request For Comments: 1073 BBN STC October 1988 RFC1073 Telnet窗口尺寸选项 (RFC1073 Telnet Window Size Option) 本备忘录状态 This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. 目录 1.命令名称和选项代码 2 2. 命令含义 2 3. 默认的规范 3 4. 动机 3 5.描述和实现的注释 4 6.例子 4 7. 致谢 5 1.命令名称和选项代码   名称= NAWS (Negotiate About Window Size)协商窗口的尺寸   代码=31 2. 命令含义   IAC WILL NAWS   由Telnet客户端发送来建议使用NAWS.   IAC WON'T NAWS   由Telnet客户端发送来拒绝使用NAWS.   IAC DO NAWS   由Telnet服务器端发送来建议使用NAWS.   IAC DON'T NAWS   由Telnet服务器端发送来拒绝使用NAWS.   IAC SB NAWS <16-bit value> <16-bit value> IAC SE   由Telnet客户端发送,通知Telnet服务器端这个窗口的宽度和高度。窗口尺寸信息从Telnet客户端到Telnet服务器端通过这个选项来传递。此信息是参考性的。服务器可能接受这个选项,但是并不使用传递的信息。   客户端和服务器端使用标准的Telnet WILL/DO/DON'T/WON'T机制来协商发送窗口尺寸信息。如果客户端和服务器端都同意,客户端可以发送一个子协商用来传递窗口的尺寸。如果以后客户端的窗口尺寸改变了(例如,窗口尺寸被用户改变),客户端可能再次发送这个子协商。因为在某些操作系统上,服务器正在执行的时候可能不允许更新窗口尺寸信息,所以服务器可能在接受最初的窗口尺寸后发送一个DON'T NAWS给客户端以阻止更多的子协商。一个协商循环将不会形成下面这些规则。   子协商包含两个值,用字符表示的窗口的宽度值和高度值。这两个值中的每一个值都是以两个字节为一组以标准的Internet字节和比特顺序发送的。这就允许窗口的宽度或高度的最大值是65535个字符。对于宽度或高度来说,接受一个等于零的值就意味着没有字符宽度或高度被发送。既然如此,Telnet服务器将假定宽度或高度是与操作系统相关的(它将有可能是基于终端类型信息的,这个终端类型信息是使用TERMINAL TYPE的Telnet选项来发送的)。   子协商的语法是   IAC SB NAWS WIDTH[1] WIDTH[0] HEIGHT[1] HEIGHT[0] IAC SE   象Telnet协议所要求的那样,在子协商中任何出现255的地方都必须显示两次。为了和IAC(它有一个255的值)字符区别。 3. 默认的规范   WON'T NAWS   DON'T NAWS   这个选项不假定任何默认的窗口尺寸信息。通常由TERMINAL TYPE Telnet选项传递的终端类型可能暗示着一个窗口尺寸,但是对于这个选项,那是不必要的。 4. 动机   随着窗口系统的日益流行,Telnet客户端总是运行在一个可变尺寸的窗口中。Telnet服务器为了正确控制光标,需要知道窗口的尺寸。窗口可能在Telnet的会话过程中改变尺寸,更新的窗口尺寸需要传送给服务器。本备忘录就确定了一个从客户端到服务器发送用字符表示的窗口高度和宽度的选项。 Telnet选项:协商输出行宽(NAOL)和协商输出页尺寸(NAOP)在语义上并不是很恰当,他们不是公用的[见RFC-1011 "正式Internet协议",和"防卫协议手册"]。NAOL和NAOP选项是双向的(也就是说服务器可以控制客户端的行宽或者页尺寸),在每一轴中限制253个字符。   这个选项是正常窗口协商过程的一个较好的模型。客户端完全控制它的窗口尺寸,只是简单地告诉服务器当前的窗口是多大。而且,253个字符的高度和宽度的限制非常低,所以,新的选项具有65535字符的限制。最后,这个选项同时发送窗口的高度和宽度,因为窗口高度和宽度通常都是同时改变的。许多操作系统和窗口应用程序更可能认为窗口的高度和宽度是同时改变的。 5.描述和实现的注释   这个选项的典型用户可能是运行在X Window下的Telnet客户端。在用户调整了客户端窗口的尺寸后,一定会和Telnet客户端通信。在4.3BSD Unix中,信号SIGWINCH(窗口改变)可能被Telnet客户端捕获并且一个新的NAWS子协商会被发送到服务器端。在接收到NAWS子协商后,服务器可能作出适当地ioctl来处理这个新的消息,然后发出SIGWINCH信号给它的子进程,可能是一个shell。 6.例子   在下列的例子中,数据流中的所有数字都是十进制。 1). 服务器建议,客户端同意使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WILL NAWS   (客户端发送)IAC SB NAWS 0 80 0 24 IAC SE   [窗口80字符宽,24字符高]   [某个时刻用户改变了窗口尺寸]   (客户端发送)IAC SB NAWS 0 80 0 64 IAC SE   [窗口80字符宽,64字符高]   所有的数字形式   (服务器发送)255 253 31   (客户端发送)255 253 31   (客户端发送)255 250 31 0 80 0 24 255 240   (客户端发送)255 250 31 0 80 0 64 255 240 2).客户端建议,服务器同意使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC SB NAWS 1 44 0 24 IAC SE   [窗口300字符宽,24字符高] 3). 客户端建议,服务器拒绝使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DON'T NAWS 4). 服务器建议,客户端拒绝使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WON'T NAWS 7. 致谢   一个基于X window系统的这个选项的更加详细的版本已经由Glenn Marcy和作者本人在Carnegie-Mellon大学实现。它在Carnegie-Mellon大学的计算机系被广泛地使用。Marcy先生帮助撰写了此备忘录的早期版本,记录了更多的选项。 RFC1073 Telnet Window Size Option RFC1073 Telnet窗口尺寸选项 1 1 RFC文档中文翻译计划组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:[email protected] 译者:马东辉(eaststone ) 译文发布时间:2001-4-10 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。 Network Working Group D. Waitzman Request For Comments: 1073 BBN STC October 1988 RFC1073 Telnet窗口尺寸选项 (RFC1073 Telnet Window Size Option) 本备忘录状态 This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. 目录 1.命令名称和选项代码 2 2. 命令含义 2 3. 默认的规范 3 4. 动机 3 5.描述和实现的注释 4 6.例子 4 7. 致谢 5 1.命令名称和选项代码   名称= NAWS (Negotiate About Window Size)协商窗口的尺寸   代码=31 2. 命令含义   IAC WILL NAWS   由Telnet客户端发送来建议使用NAWS.   IAC WON'T NAWS   由Telnet客户端发送来拒绝使用NAWS.   IAC DO NAWS   由Telnet服务器端发送来建议使用NAWS.   IAC DON'T NAWS   由Telnet服务器端发送来拒绝使用NAWS.   IAC SB NAWS <16-bit value> <16-bit value> IAC SE   由Telnet客户端发送,通知Telnet服务器端这个窗口的宽度和高度。窗口尺寸信息从Telnet客户端到Telnet服务器端通过这个选项来传递。此信息是参考性的。服务器可能接受这个选项,但是并不使用传递的信息。   客户端和服务器端使用标准的Telnet WILL/DO/DON'T/WON'T机制来协商发送窗口尺寸信息。如果客户端和服务器端都同意,客户端可以发送一个子协商用来传递窗口的尺寸。如果以后客户端的窗口尺寸改变了(例如,窗口尺寸被用户改变),客户端可能再次发送这个子协商。因为在某些操作系统上,服务器正在执行的时候可能不允许更新窗口尺寸信息,所以服务器可能在接受最初的窗口尺寸后发送一个DON'T NAWS给客户端以阻止更多的子协商。一个协商循环将不会形成下面这些规则。   子协商包含两个值,用字符表示的窗口的宽度值和高度值。这两个值中的每一个值都是以两个字节为一组以标准的Internet字节和比特顺序发送的。这就允许窗口的宽度或高度的最大值是65535个字符。对于宽度或高度来说,接受一个等于零的值就意味着没有字符宽度或高度被发送。既然如此,Telnet服务器将假定宽度或高度是与操作系统相关的(它将有可能是基于终端类型信息的,这个终端类型信息是使用TERMINAL TYPE的Telnet选项来发送的)。   子协商的语法是   IAC SB NAWS WIDTH[1] WIDTH[0] HEIGHT[1] HEIGHT[0] IAC SE   象Telnet协议所要求的那样,在子协商中任何出现255的地方都必须显示两次。为了和IAC(它有一个255的值)字符区别。 3. 默认的规范   WON'T NAWS   DON'T NAWS   这个选项不假定任何默认的窗口尺寸信息。通常由TERMINAL TYPE Telnet选项传递的终端类型可能暗示着一个窗口尺寸,但是对于这个选项,那是不必要的。 4. 动机   随着窗口系统的日益流行,Telnet客户端总是运行在一个可变尺寸的窗口中。Telnet服务器为了正确控制光标,需要知道窗口的尺寸。窗口可能在Telnet的会话过程中改变尺寸,更新的窗口尺寸需要传送给服务器。本备忘录就确定了一个从客户端到服务器发送用字符表示的窗口高度和宽度的选项。 Telnet选项:协商输出行宽(NAOL)和协商输出页尺寸(NAOP)在语义上并不是很恰当,他们不是公用的[见RFC-1011 "正式Internet协议",和"防卫协议手册"]。NAOL和NAOP选项是双向的(也就是说服务器可以控制客户端的行宽或者页尺寸),在每一轴中限制253个字符。   这个选项是正常窗口协商过程的一个较好的模型。客户端完全控制它的窗口尺寸,只是简单地告诉服务器当前的窗口是多大。而且,253个字符的高度和宽度的限制非常低,所以,新的选项具有65535字符的限制。最后,这个选项同时发送窗口的高度和宽度,因为窗口高度和宽度通常都是同时改变的。许多操作系统和窗口应用程序更可能认为窗口的高度和宽度是同时改变的。 5.描述和实现的注释   这个选项的典型用户可能是运行在X Window下的Telnet客户端。在用户调整了客户端窗口的尺寸后,一定会和Telnet客户端通信。在4.3BSD Unix中,信号SIGWINCH(窗口改变)可能被Telnet客户端捕获并且一个新的NAWS子协商会被发送到服务器端。在接收到NAWS子协商后,服务器可能作出适当地ioctl来处理这个新的消息,然后发出SIGWINCH信号给它的子进程,可能是一个shell。 6.例子   在下列的例子中,数据流中的所有数字都是十进制。 1). 服务器建议,客户端同意使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WILL NAWS   (客户端发送)IAC SB NAWS 0 80 0 24 IAC SE   [窗口80字符宽,24字符高]   [某个时刻用户改变了窗口尺寸]   (客户端发送)IAC SB NAWS 0 80 0 64 IAC SE   [窗口80字符宽,64字符高]   所有的数字形式   (服务器发送)255 253 31   (客户端发送)255 253 31   (客户端发送)255 250 31 0 80 0 24 255 240   (客户端发送)255 250 31 0 80 0 64 255 240 2).客户端建议,服务器同意使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC SB NAWS 1 44 0 24 IAC SE   [窗口300字符宽,24字符高] 3). 客户端建议,服务器拒绝使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DON'T NAWS 4). 服务器建议,客户端拒绝使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WON'T NAWS 7. 致谢   一个基于X window系统的这个选项的更加详细的版本已经由Glenn Marcy和作者本人在Carnegie-Mellon大学实现。它在Carnegie-Mellon大学的计算机系被广泛地使用。Marcy先生帮助撰写了此备忘录的早期版本,记录了更多的选项。 RFC1073 Telnet Window Size Option RFC1073 Telnet窗口尺寸选项 1 1 RFC文档中文翻译计划组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:[email protected] 译者:马东辉(eaststone ) 译文发布时间:2001-4-10 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。 Network Working Group D. Waitzman Request For Comments: 1073 BBN STC October 1988 RFC1073 Telnet窗口尺寸选项 (RFC1073 Telnet Window Size Option) 本备忘录状态 This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. 目录 1.命令名称和选项代码 2 2. 命令含义 2 3. 默认的规范 3 4. 动机 3 5.描述和实现的注释 4 6.例子 4 7. 致谢 5 1.命令名称和选项代码   名称= NAWS (Negotiate About Window Size)协商窗口的尺寸   代码=31 2. 命令含义   IAC WILL NAWS   由Telnet客户端发送来建议使用NAWS.   IAC WON'T NAWS   由Telnet客户端发送来拒绝使用NAWS.   IAC DO NAWS   由Telnet服务器端发送来建议使用NAWS.   IAC DON'T NAWS   由Telnet服务器端发送来拒绝使用NAWS.   IAC SB NAWS <16-bit value> <16-bit value> IAC SE   由Telnet客户端发送,通知Telnet服务器端这个窗口的宽度和高度。窗口尺寸信息从Telnet客户端到Telnet服务器端通过这个选项来传递。此信息是参考性的。服务器可能接受这个选项,但是并不使用传递的信息。   客户端和服务器端使用标准的Telnet WILL/DO/DON'T/WON'T机制来协商发送窗口尺寸信息。如果客户端和服务器端都同意,客户端可以发送一个子协商用来传递窗口的尺寸。如果以后客户端的窗口尺寸改变了(例如,窗口尺寸被用户改变),客户端可能再次发送这个子协商。因为在某些操作系统上,服务器正在执行的时候可能不允许更新窗口尺寸信息,所以服务器可能在接受最初的窗口尺寸后发送一个DON'T NAWS给客户端以阻止更多的子协商。一个协商循环将不会形成下面这些规则。   子协商包含两个值,用字符表示的窗口的宽度值和高度值。这两个值中的每一个值都是以两个字节为一组以标准的Internet字节和比特顺序发送的。这就允许窗口的宽度或高度的最大值是65535个字符。对于宽度或高度来说,接受一个等于零的值就意味着没有字符宽度或高度被发送。既然如此,Telnet服务器将假定宽度或高度是与操作系统相关的(它将有可能是基于终端类型信息的,这个终端类型信息是使用TERMINAL TYPE的Telnet选项来发送的)。   子协商的语法是   IAC SB NAWS WIDTH[1] WIDTH[0] HEIGHT[1] HEIGHT[0] IAC SE   象Telnet协议所要求的那样,在子协商中任何出现255的地方都必须显示两次。为了和IAC(它有一个255的值)字符区别。 3. 默认的规范   WON'T NAWS   DON'T NAWS   这个选项不假定任何默认的窗口尺寸信息。通常由TERMINAL TYPE Telnet选项传递的终端类型可能暗示着一个窗口尺寸,但是对于这个选项,那是不必要的。 4. 动机   随着窗口系统的日益流行,Telnet客户端总是运行在一个可变尺寸的窗口中。Telnet服务器为了正确控制光标,需要知道窗口的尺寸。窗口可能在Telnet的会话过程中改变尺寸,更新的窗口尺寸需要传送给服务器。本备忘录就确定了一个从客户端到服务器发送用字符表示的窗口高度和宽度的选项。 Telnet选项:协商输出行宽(NAOL)和协商输出页尺寸(NAOP)在语义上并不是很恰当,他们不是公用的[见RFC-1011 "正式Internet协议",和"防卫协议手册"]。NAOL和NAOP选项是双向的(也就是说服务器可以控制客户端的行宽或者页尺寸),在每一轴中限制253个字符。   这个选项是正常窗口协商过程的一个较好的模型。客户端完全控制它的窗口尺寸,只是简单地告诉服务器当前的窗口是多大。而且,253个字符的高度和宽度的限制非常低,所以,新的选项具有65535字符的限制。最后,这个选项同时发送窗口的高度和宽度,因为窗口高度和宽度通常都是同时改变的。许多操作系统和窗口应用程序更可能认为窗口的高度和宽度是同时改变的。 5.描述和实现的注释   这个选项的典型用户可能是运行在X Window下的Telnet客户端。在用户调整了客户端窗口的尺寸后,一定会和Telnet客户端通信。在4.3BSD Unix中,信号SIGWINCH(窗口改变)可能被Telnet客户端捕获并且一个新的NAWS子协商会被发送到服务器端。在接收到NAWS子协商后,服务器可能作出适当地ioctl来处理这个新的消息,然后发出SIGWINCH信号给它的子进程,可能是一个shell。 6.例子   在下列的例子中,数据流中的所有数字都是十进制。 1). 服务器建议,客户端同意使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WILL NAWS   (客户端发送)IAC SB NAWS 0 80 0 24 IAC SE   [窗口80字符宽,24字符高]   [某个时刻用户改变了窗口尺寸]   (客户端发送)IAC SB NAWS 0 80 0 64 IAC SE   [窗口80字符宽,64字符高]   所有的数字形式   (服务器发送)255 253 31   (客户端发送)255 253 31   (客户端发送)255 250 31 0 80 0 24 255 240   (客户端发送)255 250 31 0 80 0 64 255 240 2).客户端建议,服务器同意使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC SB NAWS 1 44 0 24 IAC SE   [窗口300字符宽,24字符高] 3). 客户端建议,服务器拒绝使用NAWS   (客户端发送)IAC WILL NAWS   (服务器发送)IAC DON'T NAWS 4). 服务器建议,客户端拒绝使用NAWS   (服务器发送)IAC DO NAWS   (客户端发送)IAC WON'T NAWS 7. 致谢   一个基于X window系统的这个选项的更加详细的版本已经由Glenn Marcy和作者本人在Carnegie-Mellon大学实现。它在Carnegie-Mellon大学的计算机系被广泛地使用。Marcy先生帮助撰写了此备忘录的早期版本,记录了更多的选项。 RFC1073 Telnet Window Size Option RFC1073 Telnet窗口尺寸选项 1 1组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:[email protected] 译者:王翌(mcsewang [email protected]) 译文发布时间:2001-6-10 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻译及版权信息。 Network Working Group S. Crocker RFC-10 UCLA 21 July 1969 文档规范 (RFC10 ── DOCUMENTATION CONVENTIONS) 此规范是NWG/RFC # 3 的修订版。 网络工作组(Network Working Group)包括来自尤他洲的Steve Carr,SRI 的 Elmer Shapiro 和 Bill English,UCLA的Steve Crocker,RAND 的 John Haefner,林肯实验室的 Paul Rovner 和 Jim Curry,成员资格没有限制。 网络工作组(Network Working Group:NWG)关注主机软件、网络使用策略及网络应 用中的初始经验。 NWG工作文档通过类似于本文的笔记形式纪录。这种文档可以由任何站点的任何人发 布并包括在这个系列中。 内容 NWG文件记录的可以是任何想法、建议等与主机软件或网络的其他特征相关的内容。 文件不一定要文辞精美,但应尽量保证内容的时效性和及时性。以下几种内容的文档也可以, 如:纯粹的立场观点的表述,而没有举出实例和其他一些细节;提出特别的建议或执行技巧 而没有给出相关的背景解释;只是明白的提出一个问题而没有给出任何解答。一份文档要求 不少于一句话。 这些标准是基于下面两个原因制定的:第一,人们倾向于将文件记录当成事实上的权 威,我们希望推动交流和讨论而不是听信权威性的结论。第二,人们通常不愿发表一些未认 真雕琢过的文章,我们希望消除这种顾虑。 格式 每篇NWG 文档都应该包括下列信息: 1. “ Network Working Group ” “ Request for Comnments : X”( X下划线 ) 其中X是一个序号,它由UCLA的Steve Crocker 给出 2. 作者及合作人 3. 日期 4. 题目 标题不要求唯一 发布 笔记的一份拷贝由作者的站点发至下列成员: 1. Steve Crocker, UCLA 2. Ron Stoughton, UCSB 3. Elmer Shapiro, SRI 4. Steve Carr, Utah 5. John Haefner, RAND 6. Paul Rovner, LL 7. Bob Kahn, BB&N 8. Larry Roberts, ARPA 9. Jerry Cole, SDC 若有需要,副本可以在本地自行处理。 地址 以下是最新的地址,必要时请更正: Steve Crocker UCLA 3732 Boelter Hall (213) 825-4864 UCLA 825-2543 Sec'y Los Angeles, California 90024 Ron Stoughton UCSB Computer Research Lab. (805) 961-3221 UCSB Santa Barbara, California 93106 Elmer Shapiro SRI Stanford Research Institute (415)326-6200 333 Ravenswood Menlo Park, California 94025  Steve Carr Utah Computer Science Dept. (801) 322-8224 University of Utah Salt Lake City, Utah 84ll2 John Haefner RAND The Rand Corp. (213) 393-0411 1700 Main Street Santa Monica, California 90406 Paul D. Rovner LL Mass. Inst. of Tech. (617) 662-5500 Lincoln Laboratory B-115 X7211 P.O. Box 73 Lexington, Mass. 02173 Robert Kahn BBN Bolt, Beranek and Newman (617) 491-1850 50 Moulton St. 49l-1868 Cambridge, Mass. 02138 Larry Roberts ARPA ODS/ARPA (202) OX 7-8663 3D167 Pentagon OX 7-8654 Washington, D.C. 2030l Jerry Cole SDC 7842 Croyden 2500 Colorado L.A., California 90045 Santa Monica, California 90406 (213) 393-9411 X438 X6019 Sec'y RFC10 DOCUMENTATION CONVENTIONS 文档规范 1 RFC文档中文翻译计划 RFC文档中文翻译计划
### 回答1: 题目描述: 输入一个正整数n,输出1到n中所有奇数的和与所有偶数的和。 输入格式: 一个正整数n。 输出格式: 两个整数,分别表示1到n中所有奇数的和与所有偶数的和,中间用一个空格隔开。 样例输入: 5 样例输出: 9 6 样例说明: 1到5中所有奇数的和为1+3+5=9,所有偶数的和为2+4=6。 解题思路: 题目要求输出1到n中所有奇数的和与所有偶数的和,我们可以用两个变量odd和even来分别记录奇数和偶数的和。然后用一个循环遍历1到n,判断每个数是奇数还是偶数,然后累加到对应的变量中。最后输出odd和even即可。 参考代码: ### 回答2: 这道题要求我们输出1到100之间的所有奇数和偶数的和。我们可以用for循环来遍历1到100之间的所有数字,然后判断每个数字是奇数还是偶数,最终累加奇数和偶数的和。 首先,我们定义两个变量,oddSum和evenSum,分别用于保存奇数和偶数的和,初始值都为0。 然后,我们用for循环遍历1到100之间的所有数字,每次判断当前数字是奇数还是偶数,如果是奇数则加入oddSum,如果是偶数则加入evenSum。 最后,我们将oddSum和evenSum相加,输出结果。 代码如下: ``` int oddSum = 0; // 奇数的和 int evenSum = 0; // 偶数的和 for (int i = 1; i <= 100; i++) { if (i % 2 == 1) { oddSum += i; } else { evenSum += i; } } int sum = oddSum + evenSum; cout << "奇数和为:" << oddSum << endl; cout << "偶数和为:" << evenSum << endl; cout << "奇偶数之和为:" << sum << endl; ``` 以上就是本题的解题思路和代码实现。总体来说,这道题比较简单,只需要用for循环遍历一遍,然后判断奇偶性,最后累加即可。 ### 回答3: 这道题要求我们编写一个程序,使用for循环将1-100的所有奇数和偶数分别求和,并输出结果。实现这个程序可以分为以下几个步骤: 1.用两个变量odd_sum和even_sum来分别存储奇数和偶数的和,初值都为0。 2.使用for循环,从1开始遍历到100。每次迭代先判断当前数是奇数还是偶数,再将对应的变量加上当前数。 3.循环结束后,将odd_sum和even_sum分别输出即可。 下面是详细的Python代码实现: ```python odd_sum = 0 even_sum = 0 for i in range(1,101): if i % 2 == 0: even_sum += i else: odd_sum += i print("奇数之和为", odd_sum) print("偶数之和为", even_sum) ``` 上述代码中,range(1,101)用于生成1-100的整数序列,每次循环遍历一个数。if语句中使用了取模运算符%来判断当前数是奇数还是偶数,根据判断结果更新相应的变量。 最后用print()函数输出结果,可以看到程序计算出了正确的奇数和偶数之和。 需要注意的是,该题目可以使用其他程序实现,只需选用不同的循环结构或条件判断即可。同时,对于任何编程题目,我们应该注重思考程序逻辑和语句的简洁性,避免不必要的冗余和重复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值