write和writeln是输出语句,两者区别是writeln输出后光标会自动换行,而write则不会。两者都能灵活地输出数据,最常见用法如下:

constPI=3.1415;STR_FILE='文件';
varS1:String='china';L1:Integer=10;F1:float=12.12;C1:Char='A';
beginwriteln('PI=',PI, ' STR_FILE=', STR_FILE);writelnj('S1=', S1, ' L1=' ,L1 , ' F1=', F1 ,' C1=', C1);
end;

输出结果如下:

PI= 3.14149999999999999991E+0000 STR_FILE=鏂囦欢
S1=china L1=10 F1= 1.2119999999999999E+001 C1=A

汉字不能正常显示,这是因为lazarus源码使用的是UTF8编码,但windows的控制台是ANSI的,另外,数值型显示充满了自由主义,因系统是按各数据类型的默认格式输出的,都是靠左对齐,见下表:

数据类型 默认场宽 例子
string 有几个字符就输出几个
integer 有几位就输出几位
boolean 输出TRUE或FALSE
real 25位,第一列为符号位,正不显示(其实是空格),最后6位是E+nnnn,中间18位为尾数 PI= 3.14149999999999999991E+0000

如果我们要求他只显示4位小位,要正确显示汉字,就要按如下办事了:

 writeln('PI=', PI:6:4, ' STR_FILE=',UTF8TOANSI( STR_FILE));writeln('S1=', S1, ' L1=', L1, ' F1=', F1:6:3, ' C1=', C1);

现在显示是下面这样的:

PI=3.1415 STR_FILE=文件
S1=china L1=10 F1=12.120 C1=A

现在是不是好看多了!其中我们用了FP自带的UTF8TOANSI对汉字进行转码,使用汉字能在命令行下正确显示。留意常量PI和F1,分别写成PI:6:4和F1:6:3,其中6是场宽,表示该变量最多只能显示6个字符(当然包含小数位和小数点),4和3表示显示的小数位。

指定单场宽,格式为: write(表达式:m)或writeln(表达式:m),要注意如下情况:

1  字符串、整数、布尔型,当m大于字符串长度,是靠右对齐,左边补空格。相反,则原样输出。
2 实数,当m>25时,是靠右对齐,左边被空格,其他同默认格式。当m<25时,第一位仍是符号位,最后6位是最后6位是E+nnnn,中间为尾数当m<10时,场宽无效,按10场宽显示,样式同m<25

对于实数来讲,如果不想显示科学记数法,就要指定双场宽
格式为: write(实数表达式:m :n) 或 writeln(实数表达式:m :n)
m指定整个数的场宽,n指定显示几位小数,但当m<n+2,m无效,按保留n位小数的最小位数输出

lazarus研究-writet和writeln语句输出格式相关推荐

  1. lazarus研究--指针变量

    指针变量定义: type st20=string[20]; var vpi:^integer; //定义一个指向整型的指针变量 vpst20:^st20 ; //定义一个指向自定义类型st20的指针变 ...

  2. lazarus研究--基础数据类型

    有序类型 类型 范围 字节数 说明 byte 0-255 1 无符号 shortint -127-128 1 有符号 smallint -32768-32768 2 有符号 word 0-65535 ...

  3. linux中if的作用域,【2017-02-21】分支语句if...else...、分支嵌套、变量的作用域

    语句是指程序命令,都是按照顺序执行的. 语句又分为: 顺序语句:从上到下按顺序执行,挨个执行一遍. 分支语句:选择性执行语句,有的可能会执行,有的可能不执行.满足条件执行. 循环语句: 一.分支语句 ...

  4. 判断语句_判断和语句?

    判断和语句有着密切的联系. 任何判断都要通过语句来表达,语句是判断的语言表达形式,它是判断赖以形成和表达的基础,而判断则是语句所表达的思想内容. 判断和语句也有区别. 二者之间最主要的区别是:判断是思 ...

  5. for循环语句例题及解析python_Python入门第8课,for语句综合练习,突破循环累加难点...

    6月2日大陈上了Python入门第7课,从学生上交的练习题来看,第2题和第5题错误最多. 第2题:阅读程序写结果 for i in range(6): print("*") 有一部 ...

  6. insert into select语句锁表故障

    深入研究insert into select语句锁表故障(上) 故障描述 前几天,一个mysql数据库运维同事,在生产上用insert into select * from语句,在生产上备份了一张表, ...

  7. SQL语句的解析过程

    SQL语句的解析过程 由于最近需要做一些sql query性能提升的研究,因此研究了一下sql语句的解决过程.在园子里看了下,大家写了很多相关的文章,大家的侧重点各有不同.本文是我在看了各种资料后手机 ...

  8. mysql 去掉前面的0_去掉前面的0的sql语句(前导零,零前缀)

    去掉前面的0的sql语句(前导零,零前缀) 原来sql还有个stuff的函数,很强悍. 一个列的格式是单引号后面跟着4位的数字,比如'0003,'0120,'4333,我要转换成3,120,4333这 ...

  9. oracle数据库拼接sql语句字符串问题

    近日遇到一个问题,在使用存储过程拼接动态语句时,传输参数一直提示无效标识符,研究发现拼接sql语句的时候,作为字符串参数的变量要加' ',具体代码如下: declarevc_sql varchar2( ...

最新文章

  1. 我终于决定要放弃 okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽!
  2. java 结构数据结构_Java 数据结构
  3. Appium1.9 之 Chromedriver安装方式
  4. CF741C Arpa’s overnight party and Mehrdad’s si
  5. 如果__name__ =='__main__':在Python中怎么办?
  6. 5.19 - Stacks and Queues
  7. springboot 配置多个请求服务代理
  8. netcore 编译 html dll,ASP.NET Core Razor 视图预编译、动态编译
  9. 将已有项目转为se项目_威海将再添国家级非遗项目
  10. 解析Cloudera Manager内部结构、功能包括配置文件、目录位置等
  11. asp代码在dwearwear转换成html格式怎么转,为前端而生的编辑器Brackets及配置推荐
  12. 常见的mysql集群
  13. 网络便签与网络通讯录
  14. 关于form提交后展示遮罩及显示进度条gif问题
  15. 基础:正则表达式方便理解
  16. 开发了一款开虚拟店通过百度网盘卖成千上万本电子书虚拟商品自动发货机器人软件助手
  17. SQL异常:exist: integer = character varying
  18. Illumina测序原理
  19. 美元汇率Pascal题解
  20. No qualifying bean of type ‘com.xxx.xx.service.xxService‘ available: expected at leas

热门文章

  1. 一码多付(扫码支付)原理
  2. 期货开户合约的规模和价值
  3. Unity 监听键盘按键
  4. Java 基础 之 Valid 验证
  5. 传输控制协议---TCP协议【详解】
  6. Maven入门,读这篇文章就够了
  7. input元素的oninput事件和onchange事件的使用和区别
  8. 什么是智能生产线?常州智慧工厂,数字孪生,三维交互
  9. 树形dp day43
  10. 计算机辅助设计在中国的现状,解析中国CAD市场发展现状及未来趋势