当前位置:文档之家› 第3章 数据的输入与输出

第3章 数据的输入与输出

第3章  数据的输入与输出
第3章  数据的输入与输出

第3章数据的输入与输出

本章只介绍MATLAB最常用的输入与输出命令。

3.1 用INPUT函数输入数据

数据可以按程序或函数限定的格式由用户用input输入。此外,input还可以在MATLAB命令窗口中显示以提示用户输入什么。然而,数据的具体形式依赖于数据是标量、向量还是矩阵,以及它们是数值还是字符串。举例说明一下这几种情况。

3.1.1 标量的输入

输入一个数值时,可以采用:

InputData=input(‘Enter the temperature in degrees C:’);

在MATLAB命令窗口中显示:

Enter the temperature in degrees C: 121.7

其中数值121.7由用户输入。表达式末尾的分号可禁止系统对于输入数据的回显。

在同一表达式中可以执行用户输入数据的计算。例如:

InputData= input(‘Enter the starting angle in degrees:’)*pi/180;结果显示:

Enter the starting angle in degrees:45

其中数值45由用户输入。然而,InputData的数值为 0.7854(45π/180)。

又如,考虑温度从摄氏度向华氏度的变换,输入:

InputData=1.88*input(‘Enter the temperature in degrees C:’)+32;结果显示:

Enter the temperature in degrees C:100

其中数值100由用户输入。而InputData的数值为212。(220)

如希望将提示信息显示在几行中,则可以在单引号内的适当位置上加入定义符“\ n”,即:

InputData= input(‘Enter the starting angle\ n in degrees:’)*pi/180;结果显示:

Enter the starting angle

in degrees:

3.1.2 字符串的输入

输入一个字符串时,可以采用:

InputData=input(‘Enter file name,including its extension:’,’s’)*pi/180;结果显示:

Enter file name,including its extension:DataSet3.txt

其中字符串DataSet3.txt由用户输入。注意这里不需要加单引号,这是由input 函数中第二项参数’s’决定的。

3.1.3 向量的输入

输入由数值构成的向量时,可以采用:

InputData=input(‘Enter the temperature in degrees C:’);

在MATLAB命令窗口显示:

Enter the temperature in degrees C:[120,141,169,201]

其中向量[120,141,169,201]由用户输入。这里方括号是必须的。若要输入列向量,则用户应输入[120,141,169,201]'。

3.1.4 矩阵的输入

输入由数值构成的矩阵时,可以采用:

InputData=input(‘Enter the temperature in degrees C \n at levels 1 and 2:’);在MATLAB命令窗口显示:

Enter the temperature in degrees C

at levels 1 and 2:[67 35 91;44 51 103]

其中数组[67 35 91;44 51 103]由用户输入。

3.2 字符串(文字)和注释的输出

在MATLAB中允许矩阵的创建、存贮和操作,这些矩阵可以是字母、数字和一些特殊字符任意组合而成的字符串。字符串的定义是把字符串放在单引号内,除此以外,其他与向量和矩阵的定义类似。

下面介绍几个最常用的几个函数。

1、num2str----将数值转换为字符串。

2、disp----在MATLAB命令窗口显示字符串。例如:

num=12.567;

z=num2str(num);

disp(['产品重量 =','z','kg'])

或者,更为紧凑的形式是:

num=12.567;

disp(['产品重量 =',num2str(num),'kg'])

执行后,显示在MATLAB命令窗口中的结果为:

产品重量 =12.567 kg

若num是重量的向量,那么

num=[12.567,3.458,9.111];

disp(['产品重量 =',num2str(num),'kg'])

显示:

产品重量 =12.567 3.458 9.111 kg

然而,可以使用下面的程序建立与每个mun值一致的注释:

num=[12.567,3.458,9.111];

disp([repmat('产品重量 ='n,1),num2str(num'),repmat('kg',n,1)]) 执行后显示:

产品重量 =12.567 kg

产品重量 =3.458 kg

产品重量 =9.111 kg

若不需要显示num的注释,则

num=[12.567,3.458,9.111];

disp(num)

在MATLAB命令窗口中显示:

12.5670

3.4580

9.1110

MATLAB允许用户指定数值转换为字符串时的位数:(不懂)

num2str(a,N)

其中a是要转换的数值,N是数值的位数。若指定的位数小于小数点左边的位数,则MATLAB将数值转换为指数描述形式,且有效数字等于N。

考虑下面的例子,a=100 =3141.592653589,则:

num2str(a,1) →3e+003 num2str(a,3) →3.14e+003

num2str(a,4) →3142 num2str(a,5) →3141.5

num2str(a,8) →3141.5927

3、fprintf ----可以在MATLAB窗口中显示有格式的数据,他相对于函数disp的优势在于他能够控制数值得显示格式。函数fprintf的语法结构为: fprintf(1,'% ….',variables)

其中第一个参数为‘1’,表示在MATLAB命令窗口输出,而引号内的参数是变量格式的附加说明。格式说明的顺序对应着变量的顺序。符号%在每个具体格式说明之前。通过下面的向量可说明fprintf的几种不同的用法。

num=[12,-14,3.458,0.11167];

fprintf(1,'%5.3f',num)

结果为:

12.000 -14.000 3.458 0.112 >>

注意num(1)和num(2)的值加了3个0,而num(4)在小数点后则近似取了3位数。另外,>>表明数据已经在一行中显示出来,可以执行其他的MATLAB表达式。若想得到下一行,按Enter键即可。如果要把这4个数值作为一列来显示,可以采用定义符“\ n”,如下所示:

num=[12,-14,3.458,0.11167];fprintf(1,'%5.3f \ n',num)结果为:(为什么得到的是一行而不是一列?)

12.000

-14.000

3.458

0.112

若想得到与给定精度相同的4个数值,则:(%和f之间的数字是什么意思?) num=[12,-14,3.458,0.11167] ;

fprintf(1,'%2.0f %2.0f %5.3f %5.5f',num)

其中每个f和%之间都有两个空格,这样数值就被两个空格分开了。执行后产生: 12 -14 3.458 0.11167 >>

可以用如下方法对每一个数值进行注释:

num=[12,-14,3.458,0.11167];

fprintf(1,'weight = %2.0f kg pressure = %2.0f Pa time = %5.3f s … length = %5.3f m \n',num)

结果为:

weight = 12 kg pressure = -14 Pa time = 3.458 m length = 0.11167 m 如想按列显示数值,则程序为:

num=[12,-14,3.458,0.11167];

fprintf(1,'weight = %2.0f kg \ npressure = %2.0f Pa \ ntime = %5.3f s… \ nlength = %5.3f m \n',num)

结果为:

weight = 12 kg

pressure = -14 Pa

time = 3.458 s

length = 0.11167 m

若让每个数值按相同的格式显示,则可以简化格式说明并产生注释输出,程序为:num=[12,-14,3.458,0.11167];

nn=1:length(num);

fprintf(1,'x(%1.0f) = %7.5f \ n',[nn;num])

结果为:

x(1) = 12.00000

x(2) = -14.00000

x(3) = 3.45800

x(4) = 0.11167

3.3 数据文件的输入与输出

如前所述,数据输入的一种方法是通过程序用input函数完成。第二种方法是在程序中定义数据。其他输入数据的方法是将数据存放在ASCII文本文件之中,然后调用load函数。load函数按行读取数据,每行由回车符分隔且每个数值之间用空格或逗号分隔。

下面举例说明load函数的两种使用方法。假设数据按下面的形式存放在DataSection33.txt文件中:(怎么保存?和调用)

11 12 13

21 22 23

31 32 33

41 42 43

laod函数的用途在于将不带扩展名(后缀“.txt”)的主文件名变为变量名,将文件中的数据变为向量或矩阵元素。因此,程序中名为DataSection33的变量是一个(4x3)阶的数值矩阵,他在程序中的使用就如同一个已放置在等号左边的名为DataSection33的变量一样。

函数语句可为:

load DataSection33.txt 或 load ‘DataSection33.txt’

或 load(‘DataSection33.txt’)

如果希望对矩阵中的每一个元素取平方,可输入:

load ‘DataSection33.txt’

y=DataSection33.^2

结果显示: 121 144 169

441 484 529

961 1024 1089

1981 1764 1849

如果要把程序中的数值保存到文件之中,可使用:

save

假如要把文件DataSection33.txt 中每个值得平方存成ASCII 文本文件,程序为:

load ‘DataSection33.txt ’

y=DataSection33.^2

save ‘SaveDataSection33.txt ’y-ascii

结果生成一个包含下列内容的文本文件:

1.2100000e+002 1.4400000e+002 1.6900000e+002

4.4100000e+002 4.8400000e+002

5.2900000e+002

9.6100000e+002 1.0240000e+003 1.0890000e+003

1.6810000e+003 1.7680000e+003 1.8490000e+003

当给定文件名时,MATLAB 把文件存放在默认的目录中。而要想把文件存放在指定的目录中,则必须要给出完整的路径名。例如:

load ‘DataSection33.txt’

y=DataSection33.^2;

save ‘c:/Matlab mfiles/Matlab results/SaveDataSection33.txt’y –ascii 注意,一定要用单引号将完整的路径名和文件名引起来,这是因为在目录名上出现了冒号和空格。另外,若想在这个文件中保存其他的值,可以在save 语句中按如下方法附加相应的变量名。若让上面的程序还能计算DataSection33.txt 中数值的平方根,则程序变为:

load ‘DataSection33.txt’

y=DataSection33.^2;

z=sqrt(DataSection33)

save ‘c:/Matlab mfiles/Matlab results/SaveDataSection33.txt’y z –ascii 文件中的数据是一个(8x3)阶矩阵。前4行由y 确定,后4行由z 确定。 练习

3.1 由下式产生黄金分割数:

,2,1,025125151=???

????????? ??--???? ??+=n F n n n 使用fprintf 和disp 产生前16个数值,并在MATLAB 命令窗口中显示如下内容: F0=0

F1=1

F2=1

F3=2

F15=610

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)数据类型控制字符 格式字符说明 %c输出一个字符 %d或%i以十进制形式输出一个带符号得整数(正数不输出符号) %u以十进制形式输出无符号整数。若有符号则自动将符号位转化为数值位,%o 和%x也具有类似得功能 %o以八进制形式输出无符号整型数(不带前导0) %x或%X以十六进制形式输出无符号整型数(不带前导0x或0X)。对于十六进制数中的字符abcdef,用%x时输出得是小写字母,%X时输出的是大写字母 %f以小数形式输出单精度或双精度实数 %e或%E以指数形式输出单精度或双精度实数 %g或%G有系统决定是采用%f还是%e格式,以使输出结果的总宽度最小,并且不输出没意义的0 %s依次输出字符串中得各个字符,知道遇到'\0'是结束 (2)数据类型修饰符 数据类型修饰符在%和数据类型控制符之间 如:长整型"%ld",短整型"%hd" (3)输出数据所占得宽度与精度

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

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

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

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

实验3数据的输入与输出

实验三数据的输入与输出 一、实验目的 1.掌握Print方法的使用,尤其是各种输出格式的设置。 2.掌握InputBox函数的使用。 3.掌握MsgBox函数和MsgBox语句的使用。 二、实验内容 1.实验准备 在练习文件夹中建立vb3-1、vb3-2、vb3-3、vb3-4、vb3-5、vb3-6、vb3-7文件夹。 2.Print方法实验 例1:设计一个简单的VB程序。程序运行时,单击窗体,分别用紧凑格式、标准格式和自定义格式,在窗体上输出打印项。界面如下: 图打印格式实验窗体界面设计 (1)创建工程。 (2)建立用户界面在窗体下方画5个命令按钮,自左至右,名称依次为Command1 ~ Command5,如图所示。 (3)设置各对象的属性。各控件主要属性的设置参见表。 表属性设置 对象属性属性值说明 Command1Caption紧凑格式标题 Command2Caption标准格式 Command3Caption自定义格式 Command4Caption换行 Command5Caption清除 (4)编写命令按钮的事件代码。

双击“紧凑格式”按钮,进入代码编写窗口,编写如下代码: 在输入以上代码时要注意区分中英文双引号。中文标点只能作为字符串的一部分或出现在注释文字之中。 (5)调试运行程序。 单击菜单[运行]—[启动],或者单击工具栏的“启动”按钮,单击各个按钮,查看 效果。如单击“标准格式”和“自定义格式”按钮后,效果如图所示。

图 Print输出效果 保存结果到练习文件夹中的vb3-1文件夹。 3.InputBox函数实验 例2:设计一个简单的VB程序,界面如下: 图 InputBox函数实验界面设计 (1)创建工程。 (2)建立用户界面。各控件主要属性的设置参见表。 表属性设置 对象属性属性值说明 Form1Caption InputBox函数实验标题 Label1Caption串相加标题 Label2Caption数相加标题 Text1Text清空 Text2Text清空Command1Caption计算并输出标题 (3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:

常用视频输入输出格式

一、传输接口 按照发展先后来概述: (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

VB数据的输入与输出练习题

一、数据的输出: 1、Print Format(1234.56,”###.#”)语句的输出结果是 A)123.4 B)1234.6 C)1234.5 D)1234.56 2、以下不能用Print方法输出数据的对象或窗口是 A)窗体B)立即窗口C)图片框D) 代码窗口 3、语句Print Format$(23846.5,”000,000.00”)的输出结果是 A)23846.5 B)23,846.5 C)23,846.50 D)023,846.50 4、假定Picture1和Text1分别为图框和文本框的名称,则下列错误的语句是 A)Print 25 B)Picture1.Print 25 C)Text1.Print 25 D) Debug.Print 25 二、InputBox函数: 5、执行下列语句strInput=InputBox(“请修正稿字符串”,”字符串对话框”,”字符串”),则变量strInput 的内容是: A)“请输入字符串”B)”字符串对话框”C)”字符串”D) 空字符串 6、有下面的程序段:x=InputBox(“字符串”,”请输入”) print x A)“字符串”B)”输入”C)”请输入”D) 空白(即未输出任何内容) 三、MsgBox函数 7、下列叙述中正确的是 A)MsgBox语句的返回值是一个整数 B)执行MsgBox语句并出现信息框后,不用关闭信息框即可执行其它操作 C)MsgBox语句的第一个参数不能省略 D)如果省略MsgBox语句的第三个参数,则信息框的标题为空 8、假定有如下语句:x=MsgBox(“string1”,,”string2”,”String3”,2)执行语句后,显示一个信息框,单击“确定”按钮,则 x的值为 A)string1 B)string2 C)string3 D) 1 9、设程序中有以下语句:MsgBox “Visual”,,”Basic”,”等级考试”,2,执行语句后,以下关于信息框叙述中正确的是 A)提示信息是Visual B)提示信息是Basic C)标题栏显示为Visual D) 标题栏显示为“等级考试” 10、窗体上有一个名称为Command1的命令按钮,其事件过程如下: Private Sub Command1_Click() x=”VisualBasicProgramming” a=right(x,11) b=Mid(x,7,5) c=MsgBox(a,,b) End Sub 运行程序后单击命令按钮。以下叙述中错误的是 A)信息框是的标题是Basic B)信息框中的提示信息是Programming C) c的值是函数的返回值D) MsgBox的使用格式有错 四、字形

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

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入。字符串流也称为内存流。 字符串流也有相应的缓冲区,开始时流缓冲区是空的。如果向字符数组存入数据,随着向流插入数据,流缓冲区中的数据不断增加,待缓冲区满了(或遇换行符),一起存入字符数组。如果是从字符数组读数据,先将字符数组中的数据送到流缓冲区,然后从缓冲区中提取数据赋给有关变量。 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为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); 可以用以下语句建立输入输出字符串流对象:

第3章 数据的输入与输出

第3章数据的输入与输出 本章只介绍MATLAB最常用的输入与输出命令。 3.1 用INPUT函数输入数据 数据可以按程序或函数限定的格式由用户用input输入。此外,input还可以在MATLAB命令窗口中显示以提示用户输入什么。然而,数据的具体形式依赖于数据是标量、向量还是矩阵,以及它们是数值还是字符串。举例说明一下这几种情况。 3.1.1 标量的输入 输入一个数值时,可以采用: InputData=input(‘Enter the temperature in degrees C:’); 在MATLAB命令窗口中显示: Enter the temperature in degrees C: 121.7 其中数值121.7由用户输入。表达式末尾的分号可禁止系统对于输入数据的回显。 在同一表达式中可以执行用户输入数据的计算。例如: InputData= input(‘Enter the starting angle in degrees:’)*pi/180;结果显示: Enter the starting angle in degrees:45 其中数值45由用户输入。然而,InputData的数值为 0.7854(45π/180)。 又如,考虑温度从摄氏度向华氏度的变换,输入: InputData=1.88*input(‘Enter the temperature in degrees C:’)+32;结果显示: Enter the temperature in degrees C:100 其中数值100由用户输入。而InputData的数值为212。(220) 如希望将提示信息显示在几行中,则可以在单引号内的适当位置上加入定义符“\ n”,即: InputData= input(‘Enter the starting angle\ n in degrees:’)*pi/180;结果显示: Enter the starting angle in degrees: 3.1.2 字符串的输入 输入一个字符串时,可以采用: InputData=input(‘Enter file name,including its extension:’,’s’)*pi/180;结果显示: Enter file name,including its extension:DataSet3.txt 其中字符串DataSet3.txt由用户输入。注意这里不需要加单引号,这是由input 函数中第二项参数’s’决定的。 3.1.3 向量的输入 输入由数值构成的向量时,可以采用:

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

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(即

数据的存储与表示

数据的存储与表示 存储容量单位及地址。数据必须首先存在计算机内存,然后才能被计算机处理。计算机表示数据的部件主要是存储设备,而存储设备的具体单位是存储单元。位是计算机存储数据的最小单位。字节是数据处理的基本单位,即以字节为单位存储和解释信息。在计算机中,一个字节被称为存储器的一个存储单元。为了便于找到存储设备中的每个存储单元,计算机对其进行连续编号,这种编号就是存储地址。计算机在处理数据时,CPU通过数据总线一次存取、加工和传送的数据长度称为字。 数值的表示。计算机所能处理的数据可分为数值型和非数值型两种。数值型数据是指数学中的代数值,具有量的含义,且有正负之分、整数和小数之分;非数值型数据是指输入到计算机中的其他信息,其没有量的含义。在计算机中,数值型数据是用二进制来表示的。把将数字和符号组合在一起的二进制数称为机器数,由机器数所表示的实际值称为真值。原码表示法规定:用符号位和数值位两部分表示一个带符号数,设字长为n位,最高位为符号位,正数的符号位用0来表示,负数的符号位用1来表示,其余n-1位数值部分用二进制形式表示。反码表示法规定:正数的反码与原码相同,负数的反码是对该数的原码除符号位外各位取反,即0变1,1变0.补码表示法规定:正数的补码与原码相同,负数的补码是对该数的原码除符号位外各位取反,最末位加1,即求反加1. 字符的表示。从键盘上输入的命令和数据,实际表现为一个个英文字母、标点符号和数字,这些都是字符。字符集有很多,每一种字符集的编码方法也是各种各样。计算机中采用ASCII 编码来表示西文字符。 汉字的表示。计算机在处理汉字信息时,要将其转化为二进制数码,这就需要对汉字进行编码。汉字输入码的作用是让用户能直接使用西文键盘输入汉字。汉字交换码是指在汉字信息处理系统之间或者信息处理系统与通信系统之间进行汉字信息交换时所使用的的编码。汉字机内码又称汉字内码,它是汉字在信息系统处理内部最基本的表达形式,是设备和信息系统内部存储、处理、传输汉字用的代码。汉字字形码是指在汉字字库中存储的汉字字形的数字化信息码,它主要用于汉字的输出时产生的字形。 声音的表示。将声音通过话筒等装置转化成电信号,再将这种模拟信号转化为数字信号,这个过程称为声音的数字化。从声音的数字化角度,以下三个因素影响声音质量;采样频率、量化位数、声道数。 图像的表示。在计算机中,颜色常用RGB值来表示,用于表示颜色位数称为颜色深度。图像只有经过数字化后才能被计算机存储和处理。图像数字化包括空间位置的离散和数字化、亮度值的离散和数字化。影响图像数字化的因素有;分辨率、颜色深度。

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