当前位置:文档之家› ansys 数据的输入输出

ansys 数据的输入输出

ansys 数据的输入输出
ansys 数据的输入输出

关于ANSYS的APDL中数据的输入输出格式

一、输入格式要求

ANSYS的APDL语言其语法等各方面均与Fortran有很大的共通之处。在数据的输入输出格式方面也可以参考Fortran。对于初学者来说,输入数据时更容易引发错误,所以下面谈几点在这方面的小认识。

APDL 从外部文件输入数据,一般是采用*vread命令实现,而输入格式一般是在此命令的下一行定义,关于此命令的具体应用,可参见ANSYS帮助。

在输入格式方面与Fortran不同:

(1)APDL在数值方面没有整型(I)、G型描述符,字符型数据采用A描述符,没有H描述符。

(2)在Fortran中如果数据是整数,但是输入格式采用实数(如单精度浮点型F),则系统可以按指定格式自动为数据加上小数点,但在APDL中如输入数据为整数,如:6,则格式Fw.d中的d只能为零,否则会出现读入错误;而如果是6.则Fw.d中的d可以不为0。

另外在输入时还容易引起输入错误的是:

(1) 输入格式的长度大于数据长度(指前一个数据的起至紧接的下一个数据的起始前一位,小数点和负号均占一位),如6._ _ _ _-5.6,前面的数据长度应为6,如果输入格式Fw.d中的w>6,则会出现读入错误;

(2)格式语句应置于*v r e a d的下一行,两行之间可以有空行,但不能有其它语句,甚至是注释语句也不能有。

二、输出格式

输出与输入在格式方面基本一致,用*vwrite执行,但也有不同之处:

输出时可以使用%c控制字符输出,%wI控制整数输出;%w.pF或%w.pE或%w.pG 控制实数输出;

不能加括号。如格式语句:(F6.0,F5.2,A3),对应于:%6.0F%5.2F%3c;

应注意后一种格式中没有用逗号相隔开,也没有用括号括起,如有逗号,逗号也将一并输出。

注意:输入输出格式最好从一行的开始写,前面不要有空格

用%号(%wI)的这种格式可以输出整型数字。

%这种控制语句也应紧接*vwrite行,可以有空行,但不能有其它语句夹在中间(注释也不行)。

应当指出的是,%这种控制语句不能用在控制输入中。

三、一个例子

*GET, ELEMENTNUM,ELEMENT,0,COUNT

*GET, NODENUM,NODE,0,COUNT

*CFOPEN,c:\tecplot,plt !!tecplot的输出文件

*VWRITE

('TITLE="Ansys to Tecplot FOR TETRAHEDRON MESH"')

*VWRITE

('VARIABLES="X","Y","Z"')

*VWRITE, NODENUM,ELEMENTNUM

ZONE N=%5I,E=%7I,F=FEPOINT,ET=TETRAHEDRON

*DO, I,1,NODENUM,1

*VWRITE, NX(I),NY(I),NZ(I)

(3F12.6)

*ENDDO

*DO, I,1,ELEMENTNUM,1

*VWRITE, NELEM(I,1),NELEM(I,2),NELEM(I,3),NELEM(I,5)

%7I%7I%7I%7I

*ENDDO

*CFCLOS

finish

/clear

Item='Weight'

data=234.56

Unit='Kg'

*Dim,AA,Array,4,1,1

AA(1)=10.2,324.5,123.7,908

*Dim,BB,Char,3,1,1

BB(1)='I am','a good','man'

*CFopen,'G:\ANSYSUser\abc','txt'

*vwrite,

(5X,'*Vwrite Demo')

*vwrite,

('******************************************************') *vwrite,Item,data,Unit

(A8,F10.2,A8)

*vwrite

(/'*********** Array Parameter Output Demo**************')

*Vwrite,

('Float Format /SEQU Keyword:')

*vwrite,SEQU,AA(1)

(F3.0,4F10.4)

*vwrite,AA(1),AA(2),AA(3),AA(4)

(//'Float /x Format:'/F4.1,2X,F10.4,2X,F10.4,2X,F10.4)

*vwrite,AA(1),AA(2),AA(3),AA(4)

(//'Float Format:'/4F10.4)

*vwrite,AA(1),AA(2),AA(3),AA(4)

(//'Double Format:'/D13.5,/D15.6,/D18.10,/D10.3)

*vwrite,

(/'****************char parametric output demo *******') *vwrite,BB(1),BB(2),BB(3)

(3A6)

*CFclos

输出结果为:

*Vwrite Demo

****************************************************** Weight 234.56Kg

*********** Array Parameter Output Demo************** Float Format /SEQU Keyword:

1. 10.2000

2. 324.5000

3. 123.7000

4. 908.0000

Float /x Format:

10.2 324.5000 123.7000 908.0000

Float Format:

10.2000 324.5000 123.7000 908.0000

Double Format:

0.10200D+02

0.324500D+03

0.1237000000D+03

0.908D+03

****************char parametric output demo *******

I am a goodman

/*******************************************************/

几点说明:

1.使用*VWrite命令把数据输出到文件时,必须要使用*CFOpen命令事先打开一个文件;*CFOpen命令必须和*CFClos命令配对使用;

2.*Vwrite命令后面必须紧跟输出格式说明;

例如:

*Vwrite,a,b,c

(格式说明)

3.格式说明中Fw.d,w的数值不能太小,以至于输出的数据丢失了整数部分的精度;

例如:a=123.4,

Fw.d中的w至少要为5,否则在ANSYS中运行时报错;这样的非语法类错误,很难发现;为了避免此类错误发生,

w应该至少设置为输出数据的所有数字个数+1(小数点)

附:常用格式说明:

********************************************************************* **************************

1.''(一对单引号):用于在输出数据的时候,输出注释字符串,常常用来增加一些说明文字,增加可读性;

比如:

*Vwrite,Widh,Length,Height

('宽度为:',F6.3,'长度为:',F6.3,'高度为:',F6.3)

2.nX:输出n个空格;

比如:在输出的a,b,c3个数据之间加入2个空格;

*vwrite,a,b,c

(F6.3,2X,F6.3,2X,F6.3)

3./:结束当前行的输出,转到下一行输出;如果两个//连续出现,则添加一个空行;

实数及数组的输出与示例

一、实数的输出

①实数的输出比较简单,类似FORTRAN的可采用D/E//F/G格式输出。例如:

*CFOPEN,MYFILE,TXT

X1=4.56

X2=12345.678

X3=1.23E-6

*VWRITE,X1,X2,X3

(3d15.6)

*VWRITE,X1,X2,X3

(3E15.6)

*VWRITE,X1,X2,X3

(3f15.6)

*VWRITE,X1,X2,X3

(3g15.6)

*CFCLOSE

文件MYFILE.TXT如下:

0.456000D+01

0.123457D+05

0.123000D-05

0.456000E+01

0.123457E+05

0.123000E-05

4.560000

12345.678000

0.000001

4.56000

12345.7

0.123000E-05

②当采用科学计数时,输出格式的第一位都是“0”开头,如上文中的0.123457E+05,假如我们希望写成1.234568E+04或12.345678E+03的格式时,可采用如下格式:1PE15.6或2PE15.6。则上文中的命令流可改为:

*VWRITE,x1,x2,x3

(3(1pe15.6))

*VWRITE,x1,x2,x3

(1pe15.3,3pe15.4,1pe15.6)

③采用C格式输出实数

C格式也有d-整型、f-浮点、e-科学、g-任意、c-字符、s-字符串等格式,均采用%w.dx形式,

而%/则为回车换行。例如:

*CFOPEN,MYFILE,TXT

X1=4.56

X2=12345.678

X3=1.23E-6

*VWRITE,X1,X2,X3,4567

%14.6f%15.6e%16.6g%10d

*CFCLOSE

文件MYFILE.TXT如下:

4.560000

1.234568E+04

1.230000E-06

4567

二、数组的输出

(一)VWRITE方法

数组输出格式同上,但其输出控制却有很多种形式,且ANSYS按列输出数组。

设有数组(矩阵形式,这里不用插图了):

|1.1 2.1 3.1|

|1.2 2.2 3.2|

ABC(5,3)=|1.3 2.3 3.3|

|1.4 2.4 3.4|

|1.5 2.5 3.5|

*VWRITE命令如下几种方式:

①与矩阵写法类同的按列输出:利用ANSYS的输出特点,分别写出各列表示符即可,而行则从1到最终的5。

②同上格式,但按矩阵元素输出用一对()将矩阵表达式括起来变为矩阵元素,这样用循环输出,如命令流中所示。

③当列很多时不可能写出每个列字符表达式,此时可采用$字符格式$字符表示连续输出,没有回车符号,当一行写完后,增加一个非$格式语句即可。但是这里增加了一个临时数组,以存储某行的数据。

上述输出格式便于导入EXCELL中处理数据。

(二)MWRITE命令

数组最好采用*MWRITE命令输出,不管是否按类似矩阵格式输出,此命令均可较好解决。当矩阵列数较少时,可以采用类似行列输出;当矩阵列数很大时,可以按每行N个数据控制输出。

以上4种方法的命令流如下:

*DIM,ABC,,5,3

!数组赋值

*DO,I,1,5

*DO,J,1,3

ABC(I,J)=J+I/10

*ENDDO

*ENDDO

!VWRITE数组输出

*CFOPEN,MYFILE,TXT

!①格式1-按行列输出(行数从1~最终的5,列不变)

*VWRITE,ABC(1,1),ABC(1,2),ABC(1,3)

(3F6.1)

!②格式2-按矩阵元素输出

*DO,I,1,5

*VWRITE,(ABC(I,1)),(ABC(I,2)),(ABC(I,3))

(3F6.2)

*ENDDO

!③格式3-多列时按行列输出

*DIM,TELS,,3

*DO,I,1,5

*DO,J,1,3

TELS(J)=ABC(I,J)

*ENDDO

*VWRITE,TELS(1)

(F6.3,$)

*VWRITE

('

')

*ENDDO

*CFCLOSE

!④MWRITE输出数组

!ABCD(I,J,K)

*DIM,ABCD,,50,30

!数组赋值

*DO,I,1,50

*DO,J,1,30

ABCD(I,J)=j+i/100

*ENDDO

*ENDDO

*MWRITE,ABCD,MYFILE1,TXT,,JIK,30,50

(30F9.4)

!也可采用(10f9.4)格式,以输出150行*10个的数据。

文件MYFILE.TXT可以通过记事本查看。

1.1

2.1

3.1

1.2

2.2

3.2

1.3

2.3

3.3

1.4

2.4

3.4

1.5

2.5

3.5

1.10

2.10

3.10

1.20

2.20

3.20

1.30

2.30

3.30

1.40

2.40

3.40

1.50

2.50

3.50

1.100

2.100

3.100

1.200

2.200

3.200

1.300

2.300

3.300

1.400

2.400

3.400

1.500

2.500

3.500

文件MYFILE1.TXT的内容可通过EXCELL打开:EXCELL>打开(所有文件)>选择MYFILE1.TXT>选择分隔符>下一步>选择空格>完成,该表为50行*30列的数据表

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及+组合而成,各字符的含

数据类型与输入输出

学生实验报告 学号 : 日期 : 2014-06-22 系别计算机科 学与技术 专业 计算机科学与 技术(师) 班级姓名 课程名称C语言程序设计 课程 类型 专业课学时数2 实验 名称 数据类型与输入\输出函数 实验目的 进一步熟悉VC++6.0集成开发环境的使用方法; 掌握C语言三种基本数据类型的特点; 掌握基本输入/输出函数的功能和使用要求; 积累VC++6.0进行程序调试经验。 实验要求: 熟悉如何定义一个整型、字符型、实型: 掌握不同的类型数据之间赋值的规律; 掌握scanf,printf函数的使用方法; 实验内容 。1.新建工程EXP2_1并编辑下列程序,编译连接运行。/*C source program example*/ #include"stdio.h" main() { int a,b,sum; printf("Hello, C! "); a=123;b=456; sum=a+b; printf("sum is %d\n",sum); }

运行结果: 2 .练习程序的简单调试 去掉程序EXP2_1.c中语句 sum=a+b; 的分号,观察编译错误并记录和分析说明。 把EXP2_1.c程序中的main改为mian,观察程序出错情况并记录分析。将程序EXP2_1.c中语句 printf("sum is %d\n",sum); 中" 换为”,观察编译错误并记录和分析说明。

分析结果:不管是将“sum=a+b;”改为“sum=a+b”,还是将“main”函数改为“mian”,都出现错误,因而得不到正确的运行结果。 3.新建工程EXP2_2,按下列要求在该工程工作空间编写一个文件名为:EXP2_2.c 的程序。 定义3个int变量和一个实数型变量average,计算并输出3个整数的平均值average,即average=(x+y+z)/3,其中x,y,z的值通过变量初始化方式赋值x=5,y=4,z=2,输出average的值。 实验要求: 1)调试运行程序并观察运行结果。

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

带格式的输出语句及输入语句 一、输入语句(读语句) 在程序中可以用赋值语句给变量获得一个确定的值,但是变量的值经常变化,尤其初始化时,则必须使用输入语句──读语句,将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式: 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←┘ 列表给出每个变量的值.

第2章 基本数据类型与输入输出

第2章基本数据类型与输入输出 2·1字符集与关键字 组成C语言的字符(字符集)包括: 26个小写字母a~z 26个大写字母A~Z 10个数字0~9 其它可以显示的字符+-*/=,._:;?\”’~|!#%&()[]{}^<> 空白字符空格、制表、换行、回车等等 在C源程序中,编译器识别的基本元素是“语言符号“,包括: 关键字 标识符 常量(文字常量) 运算符 标点字符 关键字是C编译器中具有特定意义的单词。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 2·2基本数据类型 整形 字符型单精度型 实型(浮点型) 枚举型双精度型 数组类型 数据类型构造类型结构体类型 公用体型 指针类型

当声明一个对象(变量或常量)时,必须说明是什么数据类型(简称“类型“); 对象类型的描述确定了其内存所占空间大小,也确定了其表示范围; 对象类型的描述确定了其所能进行的操作; 在不同的计算机上,每个对象类型所占用的内存空间的长度不一定相同。 基本数据类型的分类 整数类型 符号表现形式数据长度数值范围 带符号int 32 -2147483648~2147483647 short 16 -32768~32767 long 32 -2147483648~2147483647 无符号unsigned int 32 0~4294967295 unsigned short 16 0~65535 unsigned long 32 0~4294967295 实数类型 符号表现形式数据长度数值范围 带符号float 32 7位精度 double 64 15~16位精度 字符类型 符号表现形式数据长度数值范围 带符号char 8 -128~127 无符号unsigned char 8 0_255 2·3变量 在程序运行过程中,其值可以改变的量称为变量。一个变量有一个名字,在内存中占据一定的存储空间。

C语言数据的输入与输出

C语言数据的输入与输出 一.Printf函数 函数原型在头文件stido.h中(使用时可以不包括) printf函数的返回值等于成功输入得数据的个数 1.printf函数得一般调用形式 printf(格式控制字符串,输出项列表) 格式控制字符串包括: (1)格式指示符 格式:%[标志][宽度][.精度][ [ h|l ] <类型>] (2)转义字符 如:'\n' , '\0' (3)普通字符 如:printf("max=%d,min=%d\n", a, b); “max=”和“,min=”是普通字符;“%d”是格式指示符;“\n”是转义字符; a和b是输出类表中的输出项(可以是常量、变量、或表达式)。 2.print函数中常用得格式控制说明 (1)数据类型控制字符 (2)数据类型修饰符 数据类型修饰符在%和数据类型控制符之间 如:长整型 "%ld" ,短整型 "%hd" (3)输出数据所占得宽度与精度

1)在%与格式字符之间插入一个整数来指示输出宽度。 若指定得输出宽度不够,系统自动以数据实际值得宽度作为输出宽度;如果指定的输出宽度多于数据实际所需宽度,数据右对齐,左边补以空格。 如:printf("%5d\n",42); \*输出结果: 42*\ 2)float或double类型得实型数可以用“整数1.整数2”的形式在指定总宽度的同时指定小数位得宽度。“整数1”指定输出数据得总宽度(小数点也要计算在内),“整数2”称之为精度,即小数位的位数。 注意:输出数据得实际精度并补取决与格式控制中的域宽和小数得位宽,而是取决于数据在计算机内的存储精度。 (4)标志控制字符 1)输出数据左对齐的标志字符“-”,在指定输出宽度之前。 如:printf("%-5d##\n",24); \*输出结果:24 ##*\ 2)输出数字总是带正负号得标志字符“+”,在%和格式字符之间(或指定得输出宽度前) 如:printf("%+d,%+d\n",100,-200); \*输出结果:+100,-200*\ 3)在输出数据前加前导0,可以在指定输出宽度得同时,在数据前面得多于空格处填以数字0。 如:printf("%05d\n",59); \*输出结果:00059*\ 二.Scanf函数 函数原型在头文件stdio.h中(使用时可以不包括) Scanf函数的返回值等于成功输入得数据的个数。 1.scanf函数得一般调用形式 scanf(格式控制字符串,地址列表) 格式控制字符串:%[*][输入数据宽度][ h|l ]<类型> 地址列表是各变量得地址,如:&a,&b

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为自然数,指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。若数据实际长度小于指定场宽时,则一律"向右

数据的存储与输入输出

第3章_数据的存储与输入输出 1.什么是数据? 首先我们来看一看什么是数据? 简单的来讲,数据就是有用的信息。例如,一首歌,一部电影,一篇文章,一个数字,这些都是数据。 2.数据与数据类型 接下来我们来看一看什么是数据类型? 数据类型就是对数据的分类。 3.数据存储 那我们的数据究竟是怎样存储到计算机里面的呢?电影,歌曲那些我们先不管,我们先来看一下最基本的数,我们一起来研究一下平时生活中最常见的数字是怎么存储到计算机里面的。在学习数字在计算机里面怎么存储之前,我们需要先了解两个知识点,那就是内存和进制。 4.内存 在介绍数字的存储之前,我们要先来看一个东西,内存。事实上,随着大家以后编写程序的深入,大家会发现,我们编写程序的时候,最多的就是和内存打交道。 大家都知道,我们的CPU就是计算机的大脑,所有的数据处理都是在CPU里面进行的。但是,CPU在进行数据处理之前,总得有数据传到它那里,它才能进行处理吧,而究竟哪个部件负责将数据传给CPU呢?那就是内存。也就是说,我们的CPU总是从内存里面读取数据并进行操作的。比如说你要播放硬盘上的一部电影,那也是先将硬盘上的电影传入到了内存,然后再由我们的CPU进行操作的。 内存里面有很多个单元格,每个格子称之为一位,每一个格子,也就是说每一位,可以存储一个0或者一个1。位(bit)是我们内存的最小存储单位。最早的CPU是8位CPU,一次性从内存中读取8个格子,也就是8位。所以我们把8位又称之为一个字节(byte),字节是我们内存的基本存储单位。 5.进制和进制转换 数据在我们的计算机中是以二进制的形式来表示的。在C语言中,整型常量通常还以八进制,十进制和十六进制3种方式来表示的。 ①二进制 什么叫做二进制,简单的说,就是逢二进一,目前的计算机全部都是采用的二进制系统。二进制中只有0和1,没有2这个数。为什么采用二进制呢?因为我们的二进制中每一位数都可以用任何具有两个稳定状态的元件来表示,所以二进制易于用电子方式来实现。 ②八进制 逢八进一,所以没有8这个数字。八进制整常数必须以0开头作为八进制数的前缀。比如04,017等。八进制数通常是无符号数。 例如,下面的数是合法的八进制整数

数据存储方式

数据存储的几种方式: 总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络。其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式;数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越,有查询功能,可以加密,可以加锁,可以跨应用,跨平台等等;网络,则用于比较重要的事情,比如科研,勘探,航空等实时采集到的数据需要马上通过网络传输到数据处理中心进行存储并进行处理。对于Android平台来讲,它的存储方式也不外乎这几种,按方式总体来分,也是文件,数据库和网络。但从开发者的角度来讲它可以分为以下五种方式: 1.SharedPreferences共享偏好2.Internal Storage内部存储空间3.External Storage外部存储空间4.SQLite Database数据库5.Internet网络这几种方式各自有各自的优点和缺点,要根据不同的实际情况来选择,而无法给出统一的标准。下面就各种方式谈谈它们的优缺点,以及最合适的使用情况:1.Shared Preferences共享偏好SharedPreferences是用来存储一些Key/Value类似的成对的基本数据类型,注意,它只能存储基本数据类型,也即int, long, boolean, String, float。事实上它完全相当于一个HashMap,唯一不同的就是HashMap中的Value可以是任何对象,而SharedPreferences中的值只能存储基本数据类型(primitive types)。对于它的使用方法,可以参考Android Developer Guide,这里不重复。如此来看,最适合SharedPreferences的地方就是保存配置信息,因为很多配置信息都是Key/Value。事实上,在Android当中SharedPreferences使用最多的地方也是用来保存配置(Settings)信息,系统中的Settings中这样,各个应用中的Settings也是这样。并且,Android中为了方便的使用SharedPreferences 保存配置信息,它来专门有PreferenceActivity用来封装。也就是说如果你想在应用程序中创建配置(Settings),你可以直接使用PreferenceActivity和一些相关的专门为Preference封装的组件,而不用再直接去创建,读取和保存SharedPreference,Framework中的这些组件会为你做这些事。再谈谈一些使用SharedPreference时的技巧,它只能保存基本数据类型,但假如我想保存一个数组,怎么办?可以把数据进行处理,把它转化成一个String,取出的时候再还原就好了;再如,如想保存一个对象,怎么办,同样,可以把对象序列化成为字符序列,或转成String(Object.toString()),或是把它的HashCode(Object.hashCode())当成Value 保存进去。总之,SharedPreferences使用起来十分的方便,可以灵活应用,因为它简单方便,所以能用它就尽量不要用文件或是数据库。 1.Internal Storage内部存储空间所谓的内部存储与外部存储,是指是否是手机内置。手机内置的存储空间,称为内部存储,它是手机一旦出厂就无法改变,它也是手机的硬件指标之一,通常来讲手机内置存储空间越大意味着手机价格会越贵(很多地方把它称为手机内存,但我们做软件的知道,这并不准确,内存是指手机运行时存储程序,数据和指令的地方;这里应该是手机内部存储的简称为内存,而并非严格意义上的内存)。内部存储空间十分有限,因而显得可贵,所以我们要尽可能避免使用;另外,它也是系统本身和系统应用程序主要的数据存储所在地,一旦内部存储空间耗尽,手机也就无法使用了。所以对于内部存储空间,我们要尽量避免使用。上面所谈到的Shared Preferences和下面要谈到的SQLite数据库也都是存储在内部存储空间上的。Android本身来讲是一个Linux操作系统,所以它的内部存储空间,对于应用程序和用户来讲就是“/data/data"目录。它与其他的(外部的存储)相比有着比较稳定,存储方便,操作简单,更加安全(因为可以控制访问权限)等优点。而它唯一的缺点就是它比较有限,比较可贵。虽然,可以非常容易的知道程序本身的数据所在路径,所有的应用程序的数据路径都是“/data/data/app-package-name/”,所有的程序用到的数据,比如libs库,SharedPreferences

数据的输出输入

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表示长型数据。

C语言数据类型及输入输出函数

实验二C语言数据类型及输入输出函数 一、实验目的 1、熟悉C语言编译环境Turbo C 2.0; 2、熟悉C语言的基本数据类型; 3、熟悉C语言的基本输入及输出函数; 4、使用TC编写简单的程序。 二、预习并思考 1.C语言所包括的基本数据类型 1)整型 整型数据可以有哪几种表示形式?(十进制,八进制,十六进制) 基本整型,短整型,长整型,字符型 两种表现形式 1在定义时使用: 比如十进制表示: int a=12; 八进制表示: int a=012; 十六进制表示:int a=0x12; 2 在输出时使用: Printf(“%d”,a);/*十进制数*/ Printf(“%o”,a);/*八进制数*/

Printf(“%h”,a);/*十六进制数*/ 这几种类型的数据应该如何定义?怎么区分? 整型 int “%d” 长整型 long int “ %ld” 字符型 char “%c” 整型数据的范围是多少?超出以后会如何? 整型数据范围:-32768~32767 超出后,依次从最小开始计数 比如32768 显示出来是-32768 2)实型

实型数据分为单精度float和双精度double两种,它们存储时分别占据多大的内存空间? Float -2^32~2^31-1,占四个字节 Double -2^64~2^63-1,占八个字节 3)字符型 一个字符的数据范围有多大? 0~256 如何理解字符数据和整型数据之间的关系?字符和字符串之间的关系是什么,存储时有何区别? 字符人们使用的记号,抽象意义上的一个符号。 '1', '中', 'a', '$', '¥', …… 字符串在内存中,如果“字符”是以 ANSI 编码形式存在的,一个字符可能使用一个字节或多个字节来表

常用视频输入输出格式

一、传输接口 按照发展先后来概述: (1)CVBS:Composite Video Broadcast Signal,复合视频广播信号。 它是最早期的一种图像数据传输方法,是将模拟视频信号和声音信号结合,并调制到视频载波之前的一种格式。复合视频包含色差(色调和饱和度)和亮度信息,并将它们同步在消隐脉冲中,用同一信号传输。这种接口有3根线:白(左声道)、红(右声道)、黄(视频信号),如图所示: 由于是采用亮度和色度信号频谱间置方法复合在一起,所以会导致亮、色的串扰以及清晰度降低等问题。 (2)S-video:即S端子,它是将亮度信号Y和色度信号C分开传输,这样就可确保亮度和色度信号不相互干扰。 (3)VGA:Video Graghic Array,又叫显示绘图阵列,它采用非对称分布的15Pin 连接方式,共有15针,分成3排,每排5个孔。 (4)DVI:Digital Visual Interface,即数字视频接口。它采用全数字传输,可有效降低干扰和提高性能。对于DVI接口,有很多规范,常见的是DVI-D(Digital)和DVI-I(Integrated),DVI-I只能传输数字信号,可以用它来连接显卡和平板电视等。 (5)HDMI:High Definition Multimedia Interface,即高清晰度多媒体接口。它与DVI不同,可以同时传输视频和音频信号,由于音频和视频信号采用同一条电缆,可大大简化系统的安装。 除了上述有代表性的接口之外,另外还有一些典型接口,比如:色差分量接口(三基色输入)、SCART(欧洲通用视频接口)、BNC端口输入(R、G、B、行同步、场同步5个连接头),SDI(串行数字接口)等等。 二、视频输出的数字信号格式 相关名词: ITU:International Telecommunications Union (国际电信联盟) ITU-R:Radiocommunication sector of ITU (国际电信联盟无线电通信部门)CCIR:International Radio Consultative Committee (国际无线电咨询委员会)

实验04 数据的有格式输入输出

实验四数据有格式输入输出 数据是程序处理的主要对象。一般情况下,在程序中要完成大量的数据输入输出任务,输入输出数据是否简洁、直观、醒目、规范,是评价程序质量的一项重要指标。如何组织数据的输入输出是程序设计时要认真考虑的一项重要工作。 FORTRAN90提供了强大的数据输入输出功能,其中数据有格式输入输出功能是FORTRAN90最具特色的功能之一。通过学习和掌握数据有格式输入输出功能,有帮于设计和编写高质量程序。 本实验是学习和掌握数据有格式输入输出功能的一次系统实验活动。 一.实验目的 1.了解数据有格式输入输出的主要作用、基本方法和使用规则。 2.掌握数据有格式输入输出语句(READ、PRINT、WRITE)的基本功能和语法规则。 3.掌握格式说明语句(FORMAT)的基本功能和语法规则。 4.掌握I、F、E、A、L、X、/、\等若干常用格式编辑符的格式要求和基本功能。 5.掌握数据有格式输入输出的数据组织和格式说明方法。 6.进一步掌握顺序结构程序设计方法。 7.进一步熟悉软件开发环境。 二.实验内容1 1.问题描述 有三个学生参加两门课程的补考,补考结束后,分别统计每个学生和每门课程的平均成绩,并输出统计结果。编写程序实现之。学生人数、课程门数和成绩数据通过键盘输入。 要求输入输出数据以规范、整洁、直观形式给出。程序中应采用数据有格式输入输出。学生人数和课程门数为2位整数,学号为长度等于4的字符串,成绩为小数1位域宽5位的单精度实数。 2.问题分析 问题对数据输入输出格式提出了严格的要求,程序应按照数据输入输出格式要求实现。按照问题中数据输入输出格式的有关要求,首先应设计好符合要求的数据输入输出格式。 下面给出已设计好的数据输入输出格式,下划线部分为键盘输入数据,非下划线部分为程序输出数据,灰色竖线间隔为一个英文字符,灰色横线间隔为一行,↙为回车键。

数据的存储结构

第四章、数据的存储结构: 迄今为止,我们使用的都是属于基本类型的数据,但C语言还给我们提供了构造类型数据,有数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,也有的书称之为“导出类型” 数组的特点: 数组是有序数据的集合 数组中的每一个元素都属于同一个数据类型 用一个统一的数组名和下标来唯一确定数组中的元素。一、学习内容: 一维数组:变量 一维字符数组:字符串 二维数组:多行多列、大量数据 二、学习方法: 定义 输入、输出 应用(处理数据) 三、注意:每种存储结构都从三方面来讲 定义、输入输出、应用(前两个用于笔试,后一个机试) 数组的引入:如:int x=3;x变量只能存放一个数字要对大量类型相同数据处理,比如求5门课程成绩之和,按照之前学的内容最少定义5个变量来分别存放5门课程成

绩,再用一个变量来存放和值……比较繁琐 四、为解决这一问题我们引入数组的学习: 数组:一系列类型相同数据存放在一系列连续的存储单元中(类型相同数据的集合体) 画图分析: 三、数据存储:数据存储方式影响处理方法的选择和执行的效率。 1、一维数组: 1)定义:类型说明符数组名[常量表达式],int a[10] 说明: (1)数组名定名规则和变量名相同,遵循标识符定名 规则 (2)数组名后是用方括弧括起来的常量表达式,不能 用圆括弧,下面用法不对:int a(10) (3)常量表达式表示元素的个数,即数组长度。例如,在a[10]中,10表示a数组有10个元素,下标从 0开始,这10个元素是,a[0],a[1],a[2]……a[9]。

注意不能使用数组元素a[10] (4)常量表达式中可以包括常量和符号常量,不能包含变量。 注意:a、大小:必须明确,必须是常量或常量表达式,不能是变量; int a[10]; int a[…0?]; int a[3+7]; int y=100; int a[y]; b、内存变量名: int a; a

第六章“输入输出及接口”习题答案

第六章输入输出及接口 〔习题6.2〕 I/O端口与存储器地址常有__????___?和__????___?两种编排方式,8088/8086处理器支持后者,设计有专门的I/O指令。其中指令IN是将数据从__????___?传输到__????___?,执行该指令时8088/8086处理器引脚产生__????___?总线周期。指令“OUT DX, AL”的目的操作数是__????___?寻址方式,源操作数是__????___?寻址方式。 〔解答〕 (I/O端口与存储器地址)统一编址 (I/O端口与存储器地址)独立编址 外设 处理器 I/O读 (I/O端口的DX)寄存器间接 寄存器 〔习题6.4〕 基于教程P142图6-7接口电路,编程使发光二极管循环发光。具体要求是:单独按下开关K0,发光二极管以L0、L1、L2、……L7顺序依次点亮,每个维持200ms,并不断重复,直到有其他按键操作;单独按下开关K1,发光二极管以L7、L6、L5、……L0顺序依次点亮,每个也维持200ms,并不断重复,直到有其他按键操作;其他开关组合均不发光,单独按下开关K7,则退出控制程序。延时200ms可以直接调用子程序DELAY实现。 〔解答〕 again: mov dx,6000h mov al,0ffh out dx,al ;全不亮 again1: in al,dx cmp al,7fh ;D7~D0=0111111B ? jz done ;单独按下K7,退出 cmp al,0feh ;D7~D0=11111110B ? jz next1 ;单独按下K0,转移到next1 cmp al,0fdh ;D7~D0=11111101B ? jz next2 ;单独按下K1,转移到next2 jmp again ;其它情况不点亮 next1: mov cx,8 mov al,1 ;从K0开始 next11: out dx,al ;某个LED电亮 call delay ;延时200ms shl al,1 ;rol al,1 loop next11 jmp again1 next2: mov cx,8

文件流是以外存文件为输入输出对象的数据流

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入。字符串流也称为内存流。 字符串流也有相应的缓冲区,开始时流缓冲区是空的。如果向字符数组存入数据,随着向流插入数据,流缓冲区中的数据不断增加,待缓冲区满了(或遇换行符),一起存入字符数组。如果是从字符数组读数据,先将字符数组中的数据送到流缓冲区,然后从缓冲区中提取数据赋给有关变量。 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为ASCII代码,然后存放在缓冲区,再从缓冲区送到字符数组。从字符数组读数据时,先将字符数组中的数据送到缓冲区,在赋给变量前要先将ASCII代码转换为二进制形式。总之,流缓冲区中的数据格式与字符数组相同。这种情况与以标准设备(键盘和显示器)为对象的输入输出是类似的,键盘和显示器都是按字符形式输入输出的设备,内存中的数据在输出到显示器之前,先要转换为ASCII码形式,并送到输出缓冲区中。从键盘输入的数据以ASCII码形式输入到输入缓冲区,在赋给变量前转换为相应变量类型的二进制形式,然后赋给变量。对于字符串流的输入输出的情况,如不清楚,可以从对标准设备的输入输出中得到启发。 文件流类有ifstream,ofstream和fstream,而字符串流类有istrstream,ostrstream和strstream。文件流类和字符串流类都是ostream,istream和iostream类的派生类,因此对它们的操作方法是基本相同的。向内存中的一个字符数组写数据就如同向文件写数据一样,但有3点不同: 1. 输出时数据不是流向外存文件,而是流向内存中的一个存储空间。输入时从内存中的存储空间读取数据。在严格的意义上 说,这不属于输入输出,称为读写比较合适。因为输入输出一般指的是在计算机内存与计算机外的文件(外部设备也视为文件)之间的数据传送。但由于C++的字符串流采用了C++的流输入输出机制,因此往往也用输入和输出来表述读写操作。 2. 字符串流对象关联的不是文件,而是内存中的一个字符数组,因此不需要打开和关闭文件。 3. 每个文件的最后都有一个文件结束符,表示文件的结束。而字符串流所关联的字符数组中没有相应的结束标志,用户要指定 一个特殊字符作为结束符,在向字符数组写入全部数据后要写入此字符。 字符串流类没有open成员函数,因此要在建立字符串流对象时通过给定参数来确立字符串流与字符数组的关联。即通过调用构造函数来解决此问题。建立字符串流对象的方法与含义如下。 建立输出字符串流对象 ostrstream类提供的构造函数的原型为: ostrstream::ostrstream(char *buffer,int n,int mode=ios::out); buffer是指向字符数组首元素的指针,n为指定的流缓冲区的大小(一般选与字符数组的大小相同,也可以不同),第3个参数是可选的,默认为ios::out方式。可以用以下语句建立输出字符串流对象并与字符数组建立关联: ostrstream strout(ch1,20); 作用是建立输出字符串流对象strout,并使strout与字符数组ch1关联(通过字符串流将数据输出到字符数组ch1),流缓冲区大小为20。 建立输入字符串流对象 istrstream类提供了两个带参的构造函数,原型为: istrstream::istrstream(char *buffer); istrstream::istrstream(char *buffer,int n); buffer是指向字符数组首元素的指针,用它来初始化流对象(使流对象与字符数组建立关联)。可以用以下语句建立输入字符串流对象: istrstream strin(ch2); 作用是建立输入字符串流对象strin,将字符数组ch2中的全部数据作为输入字符串流的内容。 istrstream strin(ch2,20); 流缓冲区大小为20,因此只将字符数组ch2中的,20个字符作为输入字符串流的内容。 建立输入输出字符串流对象 strstream类提供的构造函数的原型为: strstream::strstream(char *buffer,int n,int mode); 可以用以下语句建立输入输出字符串流对象:

实验三 数据的输入输出

实验三数据的输入输出 一、实验目的 1.进一步熟悉VC环境的使用方法和C程序的编辑、编译、连接和运行的过程。 2.学习C语言基本的输入、输出语句,以及如何进行格式的控制。掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 3.编写顺序结构程序并运行,了解如何去完成一个简单的C程序。 二、实验内容 题目1 阅读程序加注释,并给出运行结果 (1)已知三角形边长求面积。 请给出运行结果,并对每条程序加以注释。 #include #include //头文件math.h中含函数sqrt()的定义 void main( ) { double a,b,c,s,area; a=3; b=4; c=5; s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c)); //函数sqrt()用于求一个数的平方 printf("%4.1f, %4.1f, %4.1f,area is %4.2f\n",a,b,c,area); } 运行结果: (2)键入以下代码,观察输出结果。 #include void main() { printf("This prints a character,%c\n a number,%d \n a float,\ %f\n",'z',123,456.789); } (提示:printf()函数占了两行,在第一行末尾使用了一个反斜杠(\)指出字符串将延续到下一行,因此编译器将把这两行代码视为一行) 运行结果: (3)运行结果,并对每条程序加以注释。 #include #include main() { float a,b,c,disc,x1,x2,p,q;

JAVA数据的输入和输出

JA VA数据的输入和输出 一、数据的输出 1、使用System.out.println(输出项)方法 System.out.println(输出项); 输出结果后换行。输出项可以是变量名、常量、表达式。 例: public class ex1 { public static main(String args[]) { System.out.println("欢迎学习JA V A"); //输出: 欢迎学习JA V A System.out.println(10*2+4); //输出: 24 System.out.println("a="+20); //输出: a=20 } } 2、使用System.out.print()方法 System.out.print(输出项); 在当前位置输出结果。 如: public class ex2 { public static void main(String args[]) { System.out.print("欢迎学习JA V A"); //输出: 欢迎学习JA V A System.out.print(10*2+4); //输出: 24 System.out.println("a="+20); //输出: a=20 System.out.println("b="+30); } }

3、使用javax.swing.JOptionPane包的showMessageDialog()方法 import javax.swing.JOptionPane; public class ex3 { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"我学习JA V A,我快乐"); System.exit(0); } } 程序解释 (1)语句import javax.swing.JOptionPane;是导入语句,为编译器找到程序中要使用的类。(2)main()方法中的语句: JOptionPane.showMessageDialog(null,"我学习JA V A,我快乐"); 从类库加载的JOptionPane类中调用showMessageDialog()方法,这是一个显示对话框的方法。该方法有两个参数,第1个参数为null,第2参数是要显示的字符串,参数间用逗号分开。(3)System.exit(0)语句使用System类的exit()方法结束程序的运行。 二、数据的输入 1、使用命令行参数 main(String args[])方法的参数数组args接收命令行的参数,args[0]存放第一个参数字符串,args[1]存放第二个参数字符串,依此类推。 各个参数数组元素args[i]的值都是字符串,必须在main()方法中用相关的转换方法把字符串转换为对应的数据类型。(P142表10-1) 【例】从键盘上输入圆的半径,求圆的周长和面积。

相关主题
文本预览
相关文档 最新文档