第三节 汇编程序输入和输出文件的格式

第三节 汇编程序输入和输出文件的格式
第三节 汇编程序输入和输出文件的格式

第三节汇编程序输入和输出文件的格式

一、源文件

源文件是由文字编缉器编写的由汇编指令和MASM51伪指令构成的文本文件。源文件一般应以.ASM为扩展名。

二、源文件的格式

以回车作为结束的一行称为语句行。每一语句行长度应少于80个字符(即40个汉字)。每一个语句行对于汇编程序来说都是一条单独的命令行,它可以是一条汇编语言指令,也可以是一条注释,或是空白(即什么也不写),还可以是系统允许的伪指令。所有行必须按照INTEL标准格式书写即:

标号:命令参数;注释

即一行由四部份组成,各部份的顺序不能搞错,但可以根据需要缺省其中的一部份或几部份,甚至全部省去,即空白行。标号后面必须有‘:’,而命令语句和参数之间必须用空格分开,如果命令有多个参数,则参数与参数之间必须用‘,’分开,注释前必须用‘;’,也即‘;’后面的语句将不参与汇编,不生成代码,所以可以在‘;’引导的后面写任何字符,包括汉字。

标号是标志程序中某一行的符号名,标号的数值就是标号所在行代码的地址。在宏汇编MASM51中标号的长度不受限制,但标号中不能包含‘:’或其它的一些特殊符号,也不以用汉字,可以用数字作标号,但必须用字母开头。当标号作参数用(如标号作转移地址),在命令后面出现时,必须舍去‘:’(如

LJMP START中的START)。

每行只能有一个标号,一个标号只能用在一处,如果有两行用了同一个标号,则汇编时就会出错。由于标号的长度没有限制,可以用有意义的英文来说明行,使源程序读起来更方便。

命令及参数请参考有关单片机教材,其规定符合INTEL公司的51单片机汇编语言要求。这里必须注意:当采用十六进制数时,如果数值是以A,B,C,D,E,F开头的,则为了区分是数字还是字母,应当在这些数字前加'0',如FFH,应当写成0FFH,C0H应写成0C0H等。

注释用于对程序的说明,它以分号开始,以回车结束。源程序行可以只包含注释,注释只是被复制到列表文件中,不产生机器码。由于汇编程序不直观,所以在编写源程序时,应当养成多写注释的习惯,这样有助于源程序的阅读。否则,时间一长,自编的程序也会搞不清表达的含义。典型的注释有如下几种:1.在一行的后面写,以说明这一行语句的用途;2.在一段子程序的前面写,以说明这一子程序的用途,由什么程序调用,入口参数,出口值,占用资源等等情况;3.在整个源程序的最前面书写,以说明本程序的用途,资源的分配等情况。以下是一个例子:

;堆栈从5FH起

;01H单元,用作键盘扫描程序判断是否有键按下,有为'1',无为'0'

;38H单元,音量大小代码,初始为2

ORG 0000H

LJMP START

ORG 0003H ;外中断0处理程序

NOP

RET

START: ;初始化程序

MOV SP,5FH

.

;***********************************************

;以上初始化程序

;***********************************************

MAIN:

LCALL KEY

LJMP MAIN

;**********************************************

;以上主程序

;*******************************************

;***********************************************

;以下键盘程序,键值从0开始

;***************************************

KEY:

PUSH PSW ;将PSW推入堆栈

SETB RS0 ;选第一工作区

MOV SBUF,#00H

KEY_DISP:

.

POP PSW

RET

;*********************************************************

;以上键盘程序

;********************************************************

.

三、算术表达式和算术操作

在宏汇编中允许使用一个算术表达式的结果来作为一个参数使用,从而使编写源程序时更为灵活。算术表达式由参数与算术操作符组成,其中参数可以是数值类型,符号类型或字符串类型。而算术表达式的最后运算结果即为该算术表达式所代表的参数。它是一个十六位的二进制数。在可以用数值的任何地方,都可以使用表达式,例如直接值,转移和子程序调用的址址部分。汇编命令内表达式由汇编解释程序在汇编时计算,改变表达式值的唯一方法就是修改参数值。

算术表达式的最简单的形式就是只有一个参数,这个参数的值也就是它的结果。一般形式为参数与算术操作符的组合,它们之间用某些限定符予以隔离,例如空格、制表符等。

在宏汇编中,所有的参数值均为整数,以十六位二进制形式存放,因此其表示范围为0~65535。对于负数则以其补码来表示。下面给出一个例子介绍宏汇编中允许使用的各种算术操作符,请大家仔细阅读。

MOV A,#3+5 ;MOV A,#8,加法,前面加'#'号代表是立即数

MOV A,3+5 ;MOV A,8 ,加法,未加'#'号代表3+5是地址

MOV A,5-3 ;MOV A,2 ,减法

MOV A,3-5 ;MOV A,0FEH,减法

MOV A,#5-3 ;MOV A,#2,减法

MOV A,#5*3 ;MOV A,#15,乘法

MOV A,#6/3 ;MOV A,#2 ,除法

MOV A,#6 MOD 3 ;MOV A,#0 ,取模运算

MOV A,01010010 SHR 3 ;MOV A,E3H ,向右移位,01010010向右移3位

MOV A,#21 SHL 5 ;MOV A,#0A0H ,向左移位,21向左移5位

MOV A, # NOT 0A5H ;MOV A,#5AH ,取0A5H的反

MOV A,#10101111 OR 11110000 ;MOV A,#57H,求两数之或

MOV A,#10101010 AND 00001111 ;MOV A,#52H,求两数之与

MOV A,#4B2H XOR 3197 ;MOV A,#0CFH,求两数之异或

MOV A,#(HIGH 4567H) ;MOV A,#45H ,取4567H的高两位

MOV A,LOW 4567H ;MOV A,67H ,取4567H的低两位

END

四、机器码代码文件

机器码代码文件由宏汇编产生,为了与一般的HEX文件相区别,通常由宏汇编产生的机器码代码文件被称为INTEL文件。该文件是由能够在处理器上运行的机器指令码组成。它可被用来传送到仿真器或用户系统中进行调试或运行。

INTELHEX文件由若干行组成,每行表示一个记录,它的每一行都是可以打印的ASCII字符,用两个字符,用两个字符来表示一个字节的值。每一行的格式如下::CC aaaa tt dd.......dd ss冒号":"为每一行的起始符,随后为一组数据在其中。CC

为由两个字节表示的十六进制数,它的范围为00H~10H,它表示该记录包含的机器代码的字节数。

aaaa为用ASCII码表示的四个十六进制数,它是该记录第一个数据字节所驻存的存储空间的绝对地址。

tt是表示该记录数据类型的一个代码,若该记录为数据,则tt为0,否则是其它值。dd 表示代码的实际字节值,每一个字节值用两个字符表示。(将会有cc个dd数据)ss是一个和校验,它是从计数器到最后一个数据字节的所有字节值累加和的相所数。

当ss与记录中所有的字相加时,其结果应该为零,若为其它值则表明该记录有错。

五、列表文件

由汇编程序生成的第二个文件是列表文件,它以LST为扩展名,也是一个ASCII码字符文件,回而可以被打印显示,也可以作为程序的文档。

列表文件是分页的,每页的长度由缺省值决定。也可以通过伪指令&PAGE来决定。每页以一起始行开始,用来指出汇编的类型类型和版本,以及页号。

当用户使用&TITLE伪指令时,该行后面紧接着一个标题行,当用户使用SUBTITLE指令时,后再接一个子标题行。例如:The Cybernetic

Micro Sysystems 8051 FamilyAssembler,Version 3.03 Page 109-10-83。

每页的其它部分由用户程序、汇编所产生的绝对地址和机器代码组成。通常一个行的第一个字符是一个空格,若出现"I"则指出这一行是个外部来的文件。而"+"则表明是一个宏扩展行。后面接着的四个字符通常是当前语句的程序地址,以十六进制形式给出,END指令前的四个字符表示该指令的起始地址参数值。后面有一个空格。

程序计数器后是10个字符的空间,它通常包含该行汇编出的目标代码的十六进制值。显示出的字节值的数目依赖于每条语句所要求的字节数目,这里,每个字节值用两字符表示。对等价指令,这个域还包含一个等号(=)。不生成目标代码的源程序行中该域全为空格。

每行的前16个字符后面的剩余部分包含着台的源程序文件。因而列表文件的每一行长度为源程序的长度再加上16列字符。如果是用80列宽的打印纸则源程序行的长度应小于64列,否则打印设备在打印时反长行切断,或则分成两行。

C++文件的输入输出(讲解非常清晰)

C++中的文件输入/输出(1) 原作:Ilia Yordanov, loobian@https://www.360docs.net/doc/8c12248971.html, 简介 本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include void main() // 程序从这里开始运行 { ofstream SaveFile(“cpp-home.txt”); SaveFile << “Hello World, from https://www.360docs.net/doc/8c12248971.html, and Loobian!”; SaveFile.close(); } 仅仅如此吗?没错!这个程序将在当前运行目录下建立一个名为 cpp-home.txt的文件,并向它写入“Hello World, from https://www.360docs.net/doc/8c12248971.html, and Loobian!”。 下面给出各行的含义: #include ——你需要包含此文件以使用C++的文件输入/输出函数。注意:一旦包含了这个文件,你不再需要(为了使用cout/cin)包含iostream.h,因为fstream.h已经自动包含了它。 在这个头文件中声明了若干个类,包括ifstream,ofstream及fstream,它们都继承自istream和ostream类。 ofstream SaveFile(“cpp-home.txt”); 1)ofstream即“output file stream(输出文件流)”。它将建立一个句柄(handle),以便我们以后能以一个文件流的形式写入文件。 2)SaveFile ——这是文件句柄的名字,当然,你还可以换用任何一个你想要的名称。

C语言输入输出函数格式详解

1、输入和输出: 输入:输入也叫读,数据由内核流向用户程序 输出:输出也称写、打印,数据由用户程序流向内核 以下介绍一些输入输出函数,尽管都是一些有缺陷的函数,但比较适合初学者使用 2、printf用法(其缺陷在于带缓存) printf输出时必须加上\n(刷新缓存) 解释:第一幅图没有加'\n',不会刷新缓存区,则不会打印出来;第二幅图是因为主函数结束时刷新了缓存区,但由于没有换行符,所以没有换行便显示了后面的内容;第三幅图时正常打印。 变量定义的是什么类型,在printf打印时就需要选择什么格式符,否则会造成数据的精度丢失(隐式强转),甚至会出现错误

(1)格式输出函数的一般形式 函数原型:intprintf(char * format[,argument,…]); 函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回实际输出的字符数,若出错,则返回负数。 A、它使用的一般形式为:printf("格式控制字符串",输出项列表); B、语句中"输出项列表"列出要输出的表达式(如常量、变量、运算符表达式、函数返回值等),它可以是0个、一个或多个,每个输出项之间用逗号(,)分隔;输出的数据可以是整数、实数、字符和字符串。 C、"格式控制字符串"必须用英文的双引号括起来,它的作用是控制输出项的格式和输出一些提示信息,例如:

inti=97; printf("i=%d,%c\n",i,i);输出结果为:i=97,a 语句printf("i=%d,%c\n",i,i);中的两个输出项都是变量i,但却以不同的格式输出,一个输出整型数97,另一个输出的却是字符a,其格式分别由"%d"与"%c"来控制。 语句printf("i=%d,%c\n",i,i);的格式控制字符串中"i="是普通字符,他将照原样输出;"%d"与"%c"是格式控制符;"\n"是转义字符,它的作用是换行。 (2)格式控制 格式控制由格式控制字符串实现,格式控制字符串由3部分组成:普通字符、转义字符、输出项格式说明。 A、普通字符。普通字符在输出时,按原样输出,主要用于输出提示信息。(空格属于普通字符) B、转义字符。转义字符指明特定的操作,如"\n"表示换行,"\t"表示水平制表等。 \n 换行 \f 清屏并换页 \r 回车 \tTab符 \xhh表示一个ASCII码用16进表示,其中hh是1到2个16进制数 C、格式说明部分由"%"和"格式字符串"组成,他表示按规定的格式输出数据。格式说明的形式为:% [flags] [width] [.prec] [F|N|h|l] type||%[标志][输出最少宽度][.精度][长度]类型 各部分说明如下: a、[]表示该项为可选项,即可有可无,如printf("%d",100); b、%:表示格式说明的起始符号,不可缺少。 c、flags为可选择的标志字符,常用的标志字符有: - ——左对齐输出,默认为右对齐输出 + ——正数输出加号(+),负数输出减号(-),如省略正数的+默认不显示 0 ——输出数值时指定左面不使用的空位置自动填0,如省略表示指定空位不填 # ——对c、s、d、u类无影响;对o类,在输出时加前缀0(数字0,八进制表示符);对x类,在输出时加前缀0x(字母为小写);对X类,在输出时加前缀0X(字母为大写);对e,g,f类当结果有小数时才给出小数点。 d、width为可选择的宽度指示符。 用十进制正整数表示设置输出值得最少字符个数。不足则补空格,多出则按实际输出,默认按实际输出,例如: printf("%8d\n",100); (前面空五格)100 printf("%08d\n",100); (前面5个0)100 printf("%6d\n",100); (前面空三格)100 printf("%-8d\n",100); 100(后面空五格) printf("%+8\n",100); (前面空四格)+100 e、[.prec]为可选的精度指示符 用“小数点”加“十进制正整数”表示,对“整数”、“实数”和“字符串”的输出有如下

C语言中文件_数据的输入输出_读写

C语言中文件,数据的输入输出,读写. 文件是数据的集合体,对文件的处理过程就是对文件的读写过程,或输入输出过程。 所谓文件是指内存以外的媒体上以某种形式组织的一组相关数据的有序集合。文件分类: 顺序文件,随机文件。 文本文件和二进制文件。 文本文件也称为ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 文本文件可以在屏幕上按字符显示,源程序文件就是文本文件,由于是按字符显示,所以能读懂文件内容。 二进制文件是按二进制编码方式来存放的。这里主要讨论文件的打开,关闭,读,写,定位等操作。 文件的存取方法 C程序的输入输出(I/O)有两种方式:一种称为标准I/O或流式I/O,另一种称为低级I/O。流式I/O是依靠标准库函数中的输入输出函数实现的。低级I/O利用操作系统提供的接口函数(称为底层接口或系统调用)实现输入输出,低级I/O 主要提供系统软件使用。 在C语言中用一个FILE类型的指针变量指向一个文件,(FILE类型是系统在stdio.h中定义的描述已打开文件的一种结构类型),这个指针称为文件指针。FILE *指针变量标识符; 如 FILE *fp; 文件的打开与关闭 所谓打开文件,指的是建立文件的各种有关信息,并使文件指针指向该文件,以便对它进行操作。 关闭文件则是断开指针与文件之间的联系,也就禁止再对该文件进行操作。 1、fopen 函数原型:FILE *fopen(const char *filename,const char *mode); Fopen函数用来打开一个文件,前一部分用来说明文件路径及文件名,后一部分mode指出了打开文件的存取方式;返回值是被打开文件的FILE型指针,若打开失败,则返回NULL。打开文件的语法格式如下: 文件指针名=fopen(文件名,使用文件方式); 文件指针名必须被说明为FILE类型的指针变量。 FILE *fp; fp=fopen(“C:\\Windowss\\abc.txt”,”r”); 注意用两个反斜杠\\来表示目录间的间隔符。 存取文件的模式是一个字符串,可以由字母r,w,a,t,b及+组合而成,各字符的含

格式化输入、输出函数

格式化输入/输出函数 格式输出函数(printf) 格式字符表 格式字符说明 d或i 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀0x),对于x用abcdef输出;对于X用ABCDEF输出 u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数,隐含输出6位小数 e,E 以指数形式输出单、双精度实数,数字部分小数位数为6位小数,指数部分占5位,用“E”时,指数以大写表示 g,G 以%f或%e中较短的输出宽度输出单、双精度实数,不输出无意义的0,用“G” 时,则指数以大写表示 c 输出单个字符 s 输出字符串 p 输出标量的内存地址 未指定宽度和指定输出宽度时的输出结果 输出语句输出结果 printf(“%3d\n”,4321); 4321(按实际位数输出) printf(“%f\n”,123.54); 123.540000(按实际需要宽度输出) printf(“%12f\n”,123.54); 凵凵123.540000(输出右对齐,左边填空格) printf(“%e\n”,123.54); 1.235400e+002(按实际需要宽度输出) printf(“%14e\n”,1213.54); 凵1.235400e+002(输出右对齐,左边填空格) printf(“%g\n”,123.5); 123.5(%f格式比采用%e格式输出宽度小) printf(“%8g\n”,123.5); 凵凵凵123.5(输出右对齐,左边填空格) 指定精度时的输出结果 输出语句输出结果 printf(“%8.3f\n”,123.55); 凵123.550 printf(“%8.1f\n”,123.55); 凵凵凵123.6 printf(“%8.0f\n”,123.55); 凵凵凵凵凵124 printf(“%g\n”,123.56789); 123.568 printf(“%.7g\n”,123.56789); 123.5679 printf(“%.5s\n”,”abcdefg”); abcde 注:在VC中float类型有7位有效数字,double类型有16位有效数字

输入输出文件

OUTPUT: **************************************************** * USAF STABILITY AND CONTROL DIGITAL DATCOM * * PROGRAM REV. JAN 96 DIRECT INQUIRIES TO: * * WRIGHT LABORATORY (WL/FIGC) ATTN: W. BLAKE * * WRIGHT PATTERSON AFB, OHIO 45433 * * PHONE (513) 255-6764, FAX (513) 258-4054 * **************************************************** 1 CONERR - INPUT ERROR CHECKING 0 ERROR CODES - N* DENOTES THE NUMBER OF OCCURENCES OF EACH ERROR 0 A - UNKNOWN VARIABLE NAME 0 B - MISSING EQUAL SIGN FOLLOWING VARIABLE NAME 0 C - NON-ARRAY VARIABLE HAS AN ARRAY ELEMENT DESIGNATION - (N) 0 D - NON-ARRAY VARIABLE HAS MULTIPLE VALUES ASSIGNED 0 E - ASSIGNED VALUES EXCEED ARRAY DIMENSION 0 F - SYNTAX ERROR 0****************************** INPUT DATA CARDS ****************************** $FLTCON NMACH=1.0,MACH(1)=.60, NALPHA=9.0, ALSCHD(1)=-2.0,0.0,2.0,4.0,8.0, 12.0,16.0,20.0,24.0, RNNUB(1)=2.28E6$ $OPTINS SREF=2.25, CBARR=0.822, BLREF=3.0$ $SYNTHS XCG=2.60, ZCG=0.0, XW=1.70, ZW=0.0, ALIW=0.0, XH=3.93, ZH=0.0, ALIH=0.0, XV=3.34, VERTUP=.TRUE.$ $BODY NX=10., X(1)=0.0, 0.175, 0.322, 0.530, 0.85, 1.46, 2.50, 3.43, 3.97, 4.57, R(1)=0.0, 0.0417, 0.0833, 0.125, 0.1665, 0.208, 0.208, 0.208, 0.178, 0.138$ $WGPLNF CHRDTP=0.346, SSPNE=1.29, SSPN=1.50, CHRDR=1.16, SAVSI=45.0, CHSTAT=0.25, SWAFP=0.0, TWISTA=0.0, SSPNDD=0.0, DHDADI=0.0, DHDADO=0.0, TYPE=1.0$ $WGSCHR TOVC=0.060, DELTAY=1.30, XOVC=0.40, CLI=0.0, ALPHAI=0.0, CLALPA(1)=0.131, CLMAX(1)=0.82, CMO=0.0, LERI=0.0025, CLAMO=0.105$ $WGSCHR CLMAXL=0.78$ $VTPLNF CHRDTP=0.420, SSPNE=0.63, SSPN=0.849, CHRDR=1.02, SAVSI=28.1, CHSTAT=0.25, SWAFP=0.0, TWISTA=0.0, TYPE=1.0$ $VTSCHR TOVC=0.09, XOVC=0.40, CLALPA(1)=0.141, LERI=0.0075$ $HTPLNF CHRDTP=0.253, SSPNE=0.52, SSPN=0.67, CHRDR=0.42, SAVSI=45.0, CHSTAT=0.25, SWAFP=0.0, TWISTA=0.0, SSPNDD=0.0, DHDADI=0.0, DHDADO=0.0, TYPE=1.0$ $HTSCHR TOVC=0.060, DELTAY=1.30, XOVC=0.40, CLI=0.0, ALPHAI=0.0,

带格式的输出语句及输入语句

带格式的输出语句及输入语句 一、输入语句(读语句) 在程序中可以用赋值语句给变量获得一个确定的值,但是变量的值经常变化,尤其初始化时,则必须使用输入语句──读语句,将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式: 1.读语句的一般格式: read(<变量名表>); readln[(<变量名表>)]; 其中变量名表是用逗号隔开的若干个变量名组成的。 功能:从标准输入(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。 说明: ①read和readln是标准过程名,它们是标准标识符。 ②执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,合法的情况下将输入的整数赋给变量a。 ③在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,一定要输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,读语句执行结束,程序继续运行。 例3. 设a、b、c为整型变量,需将它们的值分别赋以10,20,30,写出对应下列语句的所有可能输入格式。 Read(a,b,c); 解 根据③,即可列出所有可能输入格式 (a)10□20□30←┘ (b)10□20←┘ 30←┘ (c)10←┘ 20□30←┘ (d)10←┘ 20←┘ 30←┘ 其中"←┘"表示回车键。 ④read语句与readln语句的第一个区别是:

read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如: Read(a,b); Read(c,d); Read(e); 如果输入数据行如下: 1□2□3□4□5□6□←┘ 则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据6是多余的,这是允许的。 Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。 例4 设要达到例1同样的目的,但语句改为: readln(a,b);readln(c) 则例3中的4种输入格式只有(b)(d)是有效的. ⑤readln语句与read语句的第二个区别是:read后一定要有参数表,而readln 可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车。 例5 设有下列语句: read(a,b,c); readln(d,e); readln; readln(f,g); 其中,所有变量均为整型。再设输入的数据如下: 1□2←┘ 3□4□5□6□7□8←┘ 9□10←┘ 11←┘ 12□13←┘ 列表给出每个变量的值.

SAS系统和数据分析输入输出格式

第五课输入输出格式 一、SAS数据集中变量的类型 SAS共有两种类型的变量: ●字符型变量━━以ASCII码存放,最大长度不超过200字符 ●数据型变量━━以浮点数存放,长度为8个字节 SAS数据集的矩阵式结构要求每个观测的每个变量值都必须存在,因此如果某个数据值缺失,系统会自动补上一个缺失值。对于数字型变量,这个值显示为一个点“.”,而对于字符型变量,这个值显示为空格。 二、输入和输出格式 SAS数据集的数据值的内部存放格式并不一定与该数据值的输入和输出格式一致,这取决于SAS的两个重要功能:输入格式(Informats)和输出格式(Formats)。输入格式指示SAS 系统如何读入数据,而输出格式指示SAS系统如何输出数据。它们的一般形式如下: ●输入格式:<$>informat. ●输出格式:<$>format. 其中,$符号指示这是个字符输入输出格式,没有$符号表示是数值输入输出格式;Informat 是一个输入格式的名字,format是一个输出格式的名字;w是宽度值,对许多输入输出格式这个值是输入输出数据的列数;d在数值输入输出格式中是小数部分的长度;点“.”是所有输入输出格式中必须包含的分隔符,作为名字的一部分。如果在格式中省略w和d值,SAS 系统使用缺省的值。在SAS系统6.12版本中有五类输入格式,字符输入格式共有14种,数值输入格式共有35种;四类输出格式,字符输出格式共有13种,数值输出格式共有41种。 三、日期时间值在SAS系统中的存储 当变量的值表示日期、时间和日期时间时,在这种特殊的情况下,用户还需了解日期时间值在SAS系统中是怎样被存储的。SAS系统存储日期值为: ●1960年1月1日和这个日期之间的天数 例如,1962年3月8日被存储为797(即366+365+31+28+7),1958年10月1日被存储为-457(即-365-31-30-31)。SAS系统存储时间值为:-457 ●从午夜开始到此刻的秒数 例如,8:18存储为29880(8×60×60+18×60)。一个日期时间值存储为1960年1月1日午夜到这个日期时间之间的秒数。例如,1962年3月8日8:18存储为6915960(797×24×360+29880)。SAS系统6.12版本提供了17种日期、时间和日期时间的输入格式,31种输出格式。 四、几种常用的输入输出格式 如表5.1所示。 表5.1 常用的输入输出格式 主要的输入输出格式名描述

c语言输入输出格式集合

1.转换说明符 %a(%A)浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E)浮点数指数输出[e-(E-)记数法] %g(%G)浮点数不显无意义的零"0" %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数 e.g. 0123 %x(%X)十六进制整数0f(0F) e.g. 0x1234 %p 指针 %s 字符串 %% "%" 2.标志 左对齐:"-" e.g. "%-20s" 右对齐:"+" e.g. "%+20s" 空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f" #:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x; 对e,g,f 类当结果有小数时才给出小数点。 3.格式字符串(格式) 〔标志〕〔输出最少宽度〕〔。精度〕〔长度〕类型 "%-md" :左对齐,若m比实际少时,按实际输出。

"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=n e.g. "%7.2s" 输入CHINA 输出" CH" "%m.nf":输出浮点数,m为宽度,n为小数点右边数位 e.g. "%3.1f" 输入3852.99 输出3853.0 长度:为h短整形量,l为长整形量 printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。 ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。 --------------------------------------- 格式字符 格式字符用以指定输出项的数据类型和输出格式。 ①d格式:用来输出十进制整数。有以下几种用法: %d:按整型数据的实际长度输出。 %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

C语言输入输出函数printf与scanf的用法格式

C 语言输入输出函数printf 与scanf 的用法格式 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式控制字符, 以"%"开始, 后跟一个或几个控制字符,用来确定输出内容格式。 参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 例如: printf("a=%d b=%d",a,b); 1. 格式控制符Turbo C 2.0提供的格式化规定符如下: 格式控制字符 参量表 正常字符

━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e,%E 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %o 无符号以八进制表示的整数 %g,%G 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ printf的附加格式说明字符 字符说明 l 用于长整型数或双精度实型,可加在格式 符d、o、x、u和f前面 m(代表一个正整数据最小输出显示宽度

pascal-带格式的输出语句及输入语句

1.文件的打开与保存 2.文件的输入与输出语句(结合常量与变量、数的科学记数法) 3.类型:溢出的理解 带格式的输出语句及输入语句 一、写语句的输出格式 在pascal语言中输出数据时是可以按照一定格式的,对整数隐含的输出形式为按十进制数形式。对实数的输出,隐含的形式是科学记数法形式(如果不想用科学记数法输出而用小数形式输出,要自己另行定义)。 事实上,输出语句中的每个输出项中的表达式之后可以加上格式说明,若输出项后没有加格式说明,则数据按系统隐含的格式输出,还可加上一定格式符号按特定格式输出。 ⒈隐含的输出格式 pascal语言为整型量、实型量、布尔型量和字符串( 用一对单引号括起来的字符序列)规定了每种数据所占的宽度(即一个数据占几列) ,一个数据所占的宽度称为"场宽"或"字段宽"。系统给出的隐含场宽称为标准场宽。每一种pascal版本给定的标准场宽不尽相同。下表给出标准pascal和pc机上两种pascal版所规定的标准场宽。 标准场宽 ━━━━━━━━━━━━━━━━━ 数据类型标准pascal Turbo pascal ───────────────── integer 10 实际长度 real 22 17 布尔型10 4或5 字符串串长串长 ━━━━━━━━━━━━━━━━━ 在Turbo Pascal系统中,对于整型字符串的输出都是按数据本身长度输出,对于布尔型数据(只有True和False两种值),TRUE为4列,FALSE为5列,一律采用大写输出。而real 型数据的输出时,则按17列输出,其中第一列为符号位,正号不显示,后四位为"E±nn",中间的12列为尾数部分。如: writeln(sqrt(75)); 则输出□8.6602540379E+00。 而writeln(sqrt(81)); 则输出□9.0000000000E+00。 有时,在程序中往往根据实际情况,需要自己定义场宽。 ⒉指定场宽 在写语句中输出项含有格式符号时,就是为了指定场宽。 ⑴指定单场宽. 格式:write(表达式:N)或writeln(表达式:N),其中N为自然数,指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。若数据实际长度小于指定场宽时,则一律"向右

(完整word版)carsim输入、输出常用变量(20200807120646)

输入变量 32 IMP_CLT_D1_2( - ) ;离合器控制的前差速器(第二离合器) 33 IMP_CLT_D2_2( - ) ;离合器控制后差速器(第二离合器) 36 IMP_CLUTCH_D1 ( - );离合器控制的前差速器 37 IMP_CLUTCH_D2 ( - ) ; 离合器控制后差速器 51 IMP_DSTEER_L1 (度/秒);直接控制车轮的转向齿轮的导数 L1 93 IMP_FX0_L1 (N ) ;纵向力在车轮中心的 L1 从轮胎( S ) 122 IMP_FX_L1 (N ) ;纵向力轮胎 L1 126 IMP_FY0_L1 ( N ) ;侧向力在车轮中心的 L1 从轮胎( S ) 155 IMP_FY_L1 (N ) ;侧向力轮胎 L1 188 IMP_FZ_L1 (N ) ;垂直力轮胎 L1 192 IMP_F_BOOST_1(N ) ;转向齿条助推力 203 IMP_GEAR_TRANS ( - ) ;传动齿轮 214 IMP_MODE_TRANS ( - ) ;传动方式: -1 - >反向, 0 - >中性, 1 - > 手动档位选择, 2 - 18 - >自动模式的限制(最大齿轮可用) 215 IMP_MUX_L1 ( - ) ;轮胎 L1 接地纵向摩擦力 219 IMP_MUY_L1 ( - ) ;轮胎 L1 接地侧摩阻力 223 IMP_MX0_L1 (N-M ) ;侧倾力矩在车轮中心的 L1 从轮胎( S ) 236 IMP_MX_L1 (N-M ) ;侧倾力矩轮胎 L1 244 IMP_MYBK_L1 ( N-M ) ; L1 制动力矩 253 IMP_MYSM_L1 ( N- M ) ; L1 转。瞬间施加到车轮的悬挂质量 263 IMP_MY_L1 (N-M ) 265 IMP_MY_OUT_D1_L 266 IMP_MY_OUT_D1_R 267 IMP_MY_OUT_D2_L 268 IMP_MY_OUT_D2_R 269 IMP_MY_R1 (N-M ) 270 IMP_MY_R2(N-M ) 288 IMP_M_DIFF_D1 (N- M ) ;前差速器的扭矩差 289 IMP_M_DIFF_D2 (N-M ) ;后差速器的扭矩差 295 IMP_M_LOCKUP_CLUTCH_CAP (N-M ) ;转矩的最大转矩容量变矩器锁离 合器 299 IMP_M_OUT_TR (N-M ) ;变速器输出轴扭矩 300 IMP_PBK_L1 (兆帕) ; L1 制动轮缸(室)的压力 ; 滚动阻力矩轮胎 L1 ( N-M ) ( N-M ) ( N-M ) ( N-M ) ; 前差速器的左输出轴扭矩 ; 前差速器的右输出轴扭矩 ; 后差速器的左输出轴扭矩 ; 后差速器的右输出轴扭矩 ; 滚动阻力矩轮胎 R1 ; 滚动阻力矩轮胎

对文件的输入与输出

对文件的输入与输出 10.1 C文件的有关基本知识 什么是文件: 文件有不同的类型,在程序设计中,主要用到两种文件: (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。 (2)数据文件。文件的内容不是程序,而是供程序运行时读写的数据,如在程序运行过程中输出到磁盘(或其他外部设备)的数据,或在程序中供读入的数据。 操作系统把各种设备都统一作为文件来处理。 所谓“文件”一般指存储在外部介质上数据的集合。 输入输出是数据传送的过程,称为流(stream),即数据流。 C语言把文件看作是一个字符(或字节)的序列,即由一个一个字符(或字节)的数据顺序组成。 文件名: 一个文件要有一个唯一的文件标识,以便用户识别和引用。 文件标识包括3部分: 1.文件路径 2.文件名主干 3.文件后缀 如下: D:\CC\temp\ file.dat 文件路径文件名主干文件后缀 文件名主干的命名规则遵循标识符的命名规则。 文件的分类: 根据数据的组织形式,数据文件可分为ASCII文件和二进制文件。

ASCII文件又称文本文件(text file),每一个字节放一个字符的ASCII代码。 ANSI C标准采用“缓冲文件系统”处理数据文件,所谓缓冲文件系统是指系统自动地在内存区为程序中第一个正在使用的文件开辟一个文件缓冲区。 定义一个指向文件类型数据的指针变量: FILE *fp; 定义fp是一个指向FILE类型数据的指针变量。可以使fp指向某一个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它相关联的文件。 注意:指向文件的指针变量并不是指向外部介质上的数据文件的开头,而是指向内存中的文件信息区的开头。 10.2 打开与关闭文件 所谓“打开”是指为文件建立相应的信息区(用来存放有关文件的信息)和文件缓冲区(用来暂时存放输入输出的数据)。 用fopen函数打开数据文件: ANSI C规定了用标准输入输出函数fopen来实现打开文件。fopen函数的调用格式: fopen(文件名,使用文件方式); 例如: fopen(“a1”,”r”); 用fclose函数关闭数据文件: “关闭”就是撤销文件信息区和文件缓冲区,使文件指针变量不再指向该文件,也就是文件指针变量与文件“脱钩”,此后不能再通过该指针对原来与其相联系的文件进行读写操作,除非再次打开,使该指针变量重新指向该文件。 关闭文件用fclose函数。fclose函数调用的一般形式: fclose(文件指针);

1-输入输出和变量

高级语言程序设计 计算机学院 周珺 zhoujun@https://www.360docs.net/doc/8c12248971.html,
1

上课时间 教学安排 星期一 1,2节(2-17周) 星期四 3,4节(2-17周) 上课地点 实验楼:微机1室 (地点如有变动以当日大屏幕为准) 助教:高媛、张岩 答疑 周四中午12:10至1:10 信南412
2

考试方式:
平时(10%)+测验1(20%)+测验2(20%)+期末(50%)
? 要求:
z课件、书要看 z所有讲过的例题要自己上机练习 z作业独立完成
z作业要经上机调试通过
3

Lesson 1
C语言和C语言课程的地位 初识C程序 main函数 集成开发环境 printf
4

C语言和C语言课程的地位
什么是程序? 可以连续执行的一条条指令的集合。 用什么写出程序? 很多种计算机语言,比较熟悉的高级语言,如:C、 C++、Java等,还有汇编语言等。 高级语言接近自然语言的习惯,容易编写,容易理 解和交流,是给人看的语言。 计算机只能执行和处理由0和1的代码构成的二进制指 令或数据,称为“机器语言”。 高级语言程序一定要转换(如编译)成机器语言程 序才能在计算机中被执行。
5

程序员
程序设计语言
C C++ Java
编译器
计算机
机器语言
01001001 00110110 10000011 10011010 00110001
6

数据的输出输入

3.4数据的输入和输出 3.4.1输入输出的举例 利用printf函数进行数据的输出程序,现在再介绍一个包含输入和输出的程序。 3.4.2有关数据输入输出的概念 Puchar(输出字符)getchar(输入字符) 3.4.3用printf函数输出函数 在C语言中来实现输入输出的主要是printf函数和scanf函数,这两个函数是格式输入输出函数。 一,printf函数的一般格式为 printf(格式控制,输出列表) printf(“%d,%c\n”,i,c)括号包含两部分;(1)“格式控制”是用双撇号括起来的一个字符串,称“转换控制字符串”简称字符格式串。包含两个信息。 1,格式声明,格式声明是由%和格式字符组成,如%d,%f。他的作用是将输出的数据转换为指定格式然后输出。格式声明总是以%字符开始的。 2,普通字符,普通字符即输出时需要原样输出的字符。例如上面的printf函数,中的双撇号内的逗号,空格,和换行符。也可以包含其他字符。 二,输出列表是程序需要输出的一些数据,可以是常量,变量,或表达式。 Printf(参数1,参数2,参数4.。。。。。。。。。。参数N) 参数1是是格式控制字符串,参数2,3.。。是需要的数据。在执行时将参数2以后按参数1所指定的格式输出,参数1是必须有的。 三,格式字符 (1)d格式符 用来输出一个十进制整数,可以在声明格式中指定输出数据的域宽(所占的列数)如%5d,指定数据占5列。 (2)c格式符 用来输出一个字符。 (3)s格式符 用来输出一个字符串 (4)f格式符 用来输出实数(包括但双精度,长双精度),以小数形式输出。有几种用法:1,基本型,用%f。不指定输出函数的长度,由系统根据数据的实际情况决定的列数。一般情况是,实数部分全部输出,小数部分输出6位。2,指定数据的宽度和小数位数,用%m.nf。3,输出的数据向左对齐。%-m.nf。与2的格式相同,只是当数据长度不超过m时,数据想左对齐,右端用空格表示。 (5)e格式式 输出以指数形式输出。如果不指出数据所占的宽度和数字部分的小数位数。一般情况下小数部分占6位。也可以用%m.ne。形式格式声明。其中e可以是大写。 (6)i格式符 作用与%d一样。 (7)o格式符 以八进制形式输出。其中没有符号。全都是正数。 (8)x格式符: 以十六进制输出,同样用%lx表示长型数据。

carsim输入输出常用变量

输入变量 32 IMP_CLT_D1_2(- );离合器控制的前差速器(第二离合器) 33 IMP_CLT_D2_2(- );离合器控制后差速器(第二离合器) 36 IMP_CLUTCH_D1(- );离合器控制的前差速器 37 IMP_CLUTCH_D2(- );离合器控制后差速器 51 IMP_DSTEER_L1(度/秒);直接控制车轮的转向齿轮的导数L1 93 IMP_FX0_L1(N);纵向力在车轮中心的L1从轮胎(S) 122 IMP_FX_L1(N);纵向力轮胎L1 126 IMP_FY0_L1(N);侧向力在车轮中心的L1从轮胎(S) 155 IMP_FY_L1(N);侧向力轮胎L1 188 IMP_FZ_L1(N);垂直力轮胎L1 192 IMP_F_BOOST_1(N);转向齿条助推力 203 IMP_GEAR_TRANS(- );传动齿轮 214 IMP_MODE_TRANS(- );传动方式:-1 - >反向,0 - >中性,1 - > 手动档位选择,2 - 18 - >自动模式的限制(最大齿轮可用) 215 IMP_MUX_L1(- );轮胎L1接地纵向摩擦力 219 IMP_MUY_L1(- );轮胎L1接地侧摩阻力 223 IMP_MX0_L1(N-M);侧倾力矩在车轮中心的L1从轮胎(S) 236 IMP_MX_L1(N-M);侧倾力矩轮胎L1 244 IMP_MYBK_L1(N-M); L1制动力矩 253 IMP_MYSM_L1(N-M); L1转。瞬间施加到车轮的悬挂质量 263 IMP_MY_L1(N-M);滚动阻力矩轮胎L1 265 IMP_MY_OUT_D1_L(N-M);前差速器的左输出轴扭矩 266 IMP_MY_OUT_D1_R(N-M);前差速器的右输出轴扭矩 267 IMP_MY_OUT_D2_L(N-M);后差速器的左输出轴扭矩 268 IMP_MY_OUT_D2_R(N-M);后差速器的右输出轴扭矩 269 IMP_MY_R1(N-M);滚动阻力矩轮胎R1 270 IMP_MY_R2(N-M);滚动阻力矩轮胎R2 288 IMP_M_DIFF_D1(N-M);前差速器的扭矩差 289 IMP_M_DIFF_D2(N-M);后差速器的扭矩差 295 IMP_M_LOCKUP_CLUTCH_CAP(N-M);转矩的最大转矩容量变矩器锁离合器 299 IMP_M_OUT_TR(N-M);变速器输出轴扭矩 300 IMP_PBK_L1(兆帕); L1制动轮缸(室)的压力 304 IMP_PCON_BK(兆帕);制动主缸压力

文件输入输出流

C++中的文件输入/输出收藏 简介 本教程将以C++最基本的文件I/O(输出/输出)开始。此后,我将从更深入的方面,为你展示一些技巧,并分析给出一些有用的函数。 你需要对C++有一个较好的理解,否则这个教程于你而言将是陌生而毫无用处。 你的第一个程序 首先我将给出一段代码,接着再逐行进行解释。我们的第一个程序将建立一个文件,并写入一些字符: #include void main() //程序从这里开始运行 { ofstream SaveFile(“cpp-home.txt”); SaveFile << “Hello World, from https://www.360docs.net/doc/8c12248971.html, and Loobian!”; SaveFile.close(); } 仅仅如此吗?没错!这个程序将在当前运行目录下建立一个名为cpp-home.txt的文件,并向它写入“Hello World, from https://www.360docs.net/doc/8c12248971.html, and Loobian!”。 下面给出各行的含义: #include ——你需要包含此文件以使用C++的文件输入/输出函数。注意:一旦包含了这个文件,你不再需要(为了使用cout/cin)包含iostream.h,因为fstream.h已经自动包含了它。 在这个头文件中声明了若干个类,包括ifstream,ofstream及fstream,它们都继承自istream 和ostream类。 ofstream SaveFile(“cpp-home.txt”); 1)ofstream即“output file stream(输出文件流)”。它将建立一个句柄(handle),以便我们以后能以一个文件流的形式写入文件。 2)SaveFile——这是文件句柄的名字,当然,你还可以换用任何一个你想要的名称。 3)(“cpp-home.txt”); ——打开名为cpp-home.txt的文件。如果程序运行的当前目录已经存在这样一个文件,则它将被替换掉;万一不存在,程序也会为你创建一个为文件,你不必为此而担心。 现在,让我们稍微深入一点点。首先,我要指出的是:ofstream是一个类。因此ofstream SaveFile(“cpp-home.txt”);这一语句将创建一个该类的对象;而我们在括号中所传递的参数实际上将传给构造函数:在这里我们将我们要建立的文件的名称作为实际参数传递给了该类的构造函数。当然,我们还可以传递其它的一些信息,不过我以后再对其进行讲解。 SaveFile << “Hello World, from https://www.360docs.net/doc/8c12248971.html, and Loobian!”;——“<<”看起来是不是很亲切?不错,想必你已经在cout << 中见到过。这是一个预定义好的运算符。不管怎么

C语言格式输入函数SCANF()详解

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 scanf函数的一般形式 scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。scanf函数的一般形式为: scanf(“格式控制字符串”,地址表列); 其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。 例如:&a、&b分别表示变量a和变量b的地址。 这个地址就是编译系统在内存中给a、b变量分配的地址。在C 语言中,使用了地址这个概念,这是与其它语言不同的。应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。 变量的地址和变量值的关系 在赋值表达式中给变量赋值,如: a=567; 则,a为变量名,567是变量的值,&a是变量a的地址。 但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的

地址。 【例4-7】 #include int main(void){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); printf("a=%d,b=%d,c=%d",a,b,c); return0; } 在本例中,由于scanf函数本身不能显示提示串,故先用printf 语句在屏幕上输出提示,请用户输入a、b、c的值。执行scanf语句,等待用户输入。在scanf语句的格式串中由于没有非格式字符在 “%d%d%d”之间作输入时的间隔,因此在输入时要用一个以上的空格或回车键作为每两个输入数之间的间隔。如: 789 或 7 8 9 格式字符串 格式字符串的一般形式为:

相关文档
最新文档