当前位置:文档之家› C语言文件输入与输出

C语言文件输入与输出

C语言文件输入与输出
C语言文件输入与输出

C语言输入输出函数

1. fopen()函数

fopen函数用于打开文件, 其调用格式为:

FILE *fopen(char *filename, *type);

在介绍这个函数之;前, 先了解一下下面的知识。

(1) 流(stream)和文件(file)

流和文件在Turbo C2.0中是有区别的, Turbo C2.0 为编程者和被访问的设

备之间提供了一层抽象的东西, 称之为"流", 而将具体的实际设备叫做文件。

流是一个逻辑设备, 具有相同的行为。因此, 用来进行磁盘文件写的函数也同样

可以用来进行打印机的写入。在Turbo C2.0中有两种性质的流: 文字流( text

stream)和二进制(binary stream)。对磁盘来说就是文本文件和二进制文件。本

软件为了便于让读者易理解Turbo C2.0语言而没有对流和文件作特别区分。

(2) 文件指针FILE

实际上FILE是一个新的数据类型。它是Turbo C2.0的基本数据类型的集合,

称之为结构指针。有关结构的概念将在第四节中详细介绍, 这里只要将FILE理解

为一个包括了文件管理有关信息的数据结构, 即在打开文件时必须先定义一个文

件指针。

(3) 以后介绍的函数调用格式将直接写出形式参数的数据类型和函数返回值

的数据类型。例如: 上面打开文件的函数, 返回一个文件指针, 其中形式参数有

两个, 均为字符型变量(字符串数组或字符串指针)。

现在再来看打开文件函数的用法。

fopen()函数中第一个形式参数表示文件名, 可以包含路径和文件名两部分。

如:

"B:TEST.DAT"

"C:\\TC\\TEST.DAT"

如果将路径写成"C:\TC\TEST.DAT"是不正确的, 这一点要特别注意。

第二个形式参数表示打开文件的类型。关于文件类型的规定参见下表。

表文件操作类型

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

字符含义

────────────────────────────

"r" 打开文字文件只读

"w" 创建文字文件只写

"a" 增补, 如果文件不存在则创建一个

"r+" 打开一个文字文件读/写

"w+" 创建一个文字文件读/写

"a+" 打开或创建一个文件增补

"b" 二进制文件(可以和上面每一项合用)

"t" 文这文件(默认项)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

如果要打开一个CCDOS子目录中, 文件名为CLIB的二进制文件, 可写成:

fopen("c:\\ccdos\\clib", "rb");

如果成功的打开一个文件, fopen()函数返回文件指针,否则返回空指针(NULL)。由此可判断文件打开是否成功。

2. fclose()函数

fclose()函数用来关闭一个由fopen()函数打开的文件, 其调用格式为:

intfclose(FILE *stream);

该函数返回一个整型数。当文件关闭成功时, 返回0,否则返回一个非零值。

可以根据函数的返回值判断文件是否关闭成功。

例10:

#iclude

main()

{

FILE *fp; /*定义一个文件指针*/

int i;

fp=fopen("CLIB", "rb"); /*打开当前目录名为CLIB的文件只读*/

if(fp==NULL) /*判断文件是否打开成功*/

puts("File open error");/*提示打开不成功*/

i=fclose(fp); /*关闭打开的文件*/

if(i==0) /*判断文件是否关闭成功*/

printf("O.K"); /*提示关闭成功*/

else

puts("File close error");/*提示关闭不成功*/

}

二、有关文件操作的函数

本节所涉及到的文件读写函数均是指顺序读写,即读写了一条信息后,指针自动

加1。下面分别介绍写操作函数和读操作函数。

1. 文件的顺序写函数

fprintf()、fputs()和fputc()函数均为文件的顺序写操作函数,其调用格式如下: intfprintf(FILE *stream, char *format, );

intfputs(char *string, FILE *steam);

intfputc(intch, FILE *steam);

上述三个函数的返回值均为整型量。

fprintf() 函数的返回值为实际写入文件中的字符个数(字节数)。如果写错误, 则返回一个负数;fputs()函数返回0时表明将string指针所指的字符串写入文件中的操作成功, 返回非0时,表明写操作失败。

fputc()函数返回一个向文件所写字符的值, 此时写操作成功,否则返回EOF(文件结束结束其值为-1, 在stdio.h中定义)表示写操作错误。

fprintf( ) 函数中格式化的规定与printf( ) 函数相同,所不同的只是fprintf()函数是向文件中写入。而printf()是向屏幕输出。

下面介绍一个例子, 运行后产后一个test.dat的文件。

例11:

#include

main()

{

char *s="That's good news"); /*定义字符串指针并初始化*/

int i=617; /*定义整型变量并初始化*/

FILE *fp; /*定义文件指针*/

fp=fopen("test.dat", "w"); /*建立一个文字文件只写*/

fputs("Your score of TOEFLis", fp);/*向所建文件写入一串字符*/

fputc(':', fp); /*向所建文件写冒号:*/

fprintf(fp, "%d\n", i); /*向所建文件写一整型数*/

fprintf(fp, "%s", s); /*向所建文件写一字符串*/

fclose(fp); /*关闭文件*/

}

用DOS的TYPE命令显示TEST.DAT的内容如下所示:

屏幕显示

Your score of TOEFL is: 617

That's good news

2. 文件的顺序读操作函数

fscanf()、fgets()和fgetc()函数

函数fscanf()、fgets()和fgetc()均为文件的顺序读操作函数, 其调用格式

如下:

intfscanf(FILE *stream, char *format, );

charfgets(char *string, int n, FILE *steam);

intfgetc(FILE *steam);

fscanf()函数的用法与scanf()函数相似,只是它是从文件中读到信息。

fscanf()函数的返回值为EOF(即-1), 表明读错误, 否则读数据成功。

fgets()函数从文件中读取至多n-1个字符(n用来指定字符数), 并把它们放入string指向的字符串中, 在读入之后自动向字符串未尾加一个空字符, 读成功返回string指针,

失败返回一个空指针。

fgetc()函数返回文件当前位置的一个字符,读错误时返回EOF。

下面程序读取例11产生的test.dat文件, 并将读出的结果显示在屏幕上。

例12

#include

main()

{

char *s, m[20];

int i;

FILE *fp;

fp=fopen("test.dat", "r"); /*打开文字文件只读*/

fgets(s, 24, fp); /*从文件中读取23个字符*/

printf("%s", s); /*输出所读的字符串*/

fscanf(fp, "%d", &i); /*读取整型数*/

printf("%d", i); /*输出所读整型数*/

putchar(fgetc(fp)); /*读取一个字符同时输出*/

fgets(m, 17, fp); /*读取16个字符*/

puts(m); /*输出所读字符串*/

fclose(fp); /*关闭文件*/

getch(); /*等待任一键*/

}

运行后屏幕显示:

Your score of TOEFL is: 617

That's good news

如果将上例中fscanf(fp, "%d", &i)改为fscanf(fp, "%s", m), 再将其后

的输出语句改为printf("%s", m), 则可得出同样的结果。由此可见Turbo C2. 0

中只要是读文字文件, 则不论是字符还是数字都将按其ASCII值处理。另外还要

说明的一点就是fscanf()函数读到空白符时, 便自动结束,(看样子scanf是过不去空格这

一关呀)在使用时要特别注意。

3. 文件的随机读写

有时用户想直接读取文件中间某处的信息, 若用文件的顺序读写必须从文件

头开始直到要求的文件位置再读, 这显然不方便。Turbo C2.0提供了一组文件的

随机读写函数, 即可以将文件位置指针定位在所要求读写的地方直接读写。

文件的随机读写函数如下:

intfseek (FILE *stream, long offset, intfromwhere);

intfread(void *buf, int size, int count, FILE *stream);

intfwrite(void *buf, int size, int count, FILE *stream);

longftell(FILE *stream);

fseek()函数的作用是将文件的位置指针设置到从fromwhere开始的第offset

字节的位置上, 其中fromwhere是下列几个宏定义之一:

文件位置指针起始计算位置fromwhere

━━━━━━━━━━━━━━━━━━━━━━━━━━━

符号常数数值含义

───────────────────────────

SEEK_SET 0 从文件开头

SEEK_CUR 1 从文件指针的现行位置

SEEK_END 2 从文件末尾

━━━━━━━━━━━━━━━━━━━━━━━━━━━

offset是指文件位置指针从指定开始位置(fromwhere指出的位置)跳过的字

节数。它是一个长整型量, 以支持大于64K字节的文件。fseek()函数一般用于对

二进制文件进行操作。

当fseek()函数返回0时表明操作成功, 返回非0表示失败。

下面程序从二进制文件test_b.dat中读取第8个字节。

例13:

#include

main()

{

FILE *fp;

if((fp=fopen("test_b.dat", "rb"))==NULL)

{

printf("Can't open file");

exit(1);

}

fseek(fp, 8. 1, SEEK_SET);

fgetc(fp);

fclose(fp);

}

fread()函数是从文件中读count个字段, 每个字段长度为size个字节, 并把

它们存放到buf指针所指的缓冲器中。

fwrite()函数是把buf指针所指的缓冲器中, 长度为size个字节的count个字段写到stream指向的文件中去。

随着读和写字节数的增大, 文件位置指示器也增大, 读多少个字节, 文件位置指示器相应也跳过多少个字节。读写完毕函数返回所读和所写的字段个数。

ftell()函数返回文件位置指示器的当前值,这个值是指示器从文件头开始

算起的字节数, 返回的数为长整型数, 当返回-1时, 表明出现错误。

下面程序把一个浮点数组以二进制方式写入文件test_b.dat中。

例14:

#include

main()

{

float f[6]={3.2, -4.34, 25.04, 0.1, 50.56, 80.5};

/*定义浮点数组并初始化*/

int i;

FILE *fp;

fp=fopen("test_b.dat", "wb"); /*创建一个二进制文件只写*/

fwrite(f, sizeof(float), 6, fp);/*将6个浮点数写入文件中*/

fclose(fp); /*关闭文件*/

}

下面例子从test_b.dat文件中读100个整型数, 并把它们放到dat数组中。

例15:

#include

main()

{

FILE *fp;

intdat[100];

fp=fopen("test_b.dat", "rb");/*打开一个二进制文件只读*/

if(fread(dat, sizeof(int), 100, fp)!=100)

/*判断是否读了100个数*/

{

if(feof(fp))

printf("End of file"); /*不到100个数文件结束*/

else

printf("Read error"); /*读数错误*/

fclose(fp); /*关闭文件*/

}

注意:

当用标准文件函数对文件进行读写操作时, 首先将所读写的内容放进缓冲区, 即写函数只对输出缓冲区进行操作, 读函数只对输入缓冲区进行操作。例如向一个文件写入内容, 所写的内容将首先放在输出缓冲区中, 直到输出缓冲区存满或

使用fclose()函数关闭文件时, 缓冲区的内容才会写入文件中。若无fclose()

函数, 则不会向文件中存入所写的内容或写入的文件内容不全。有一个对缓冲区

进行刷新的函数, 即fflush(), 其调用格式为:

intfflush(FILE *stream);

该函数将输出缓冲区的内容实际写入文件中, 而将输入缓冲区的内容清除掉。

4. feof()和rewind()函数

这两个函数的调用格式为:

intfeof(FILE *stream);

int rewind(FILE *stream);

feof()函数检测文件位置指示器是否到达了文件结尾,若是则返回一个非0

值, 否则返回0。这个函数对二进制文件操作特别有用, 因为二进制文件中,文件结尾标志EOF也是一个合法的二进制数,只简单的检查读入字符的值来判断文件是否结束是不行的。如果那样的话, 可能会造成文件未结尾而被认为结尾, 所

以就必须有feof()函数。

下面的这条语句是常用的判断文件是否结束的方法。

while(!feof(fp))

fgetc(fp);

while为循环语句, 将在下面介绍。

rewind()函数用于把文件位置指示器移到文件的起点处, 成功时返回0,否

则, 返回非0值。

1.2.2 非标准文件函数

这类函数最早用于UNIX操作系统, ANSI标准未定义, 但有时也经常用到,

DOS 3.0以上版本支持这些函数。它们的头文件为io.h。

一、文件的打开和关闭

1. open()函数

open()函数的作用是打开文件, 其调用格式为:

int open(char *filename, int access);

该函数表示按access的要求打开名为filename的文件, 返回值为文件描述字,

其中access有两部分内容: 基本模式和修饰符, 两者用" "("或")方式连接。修

饰符可以有多个, 但基本模式只能有一个。access的规定如表3-2。

表3-2 access的规定

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

基本模式含义修饰符含义

────────────────────────────

O_RDONLY 只读O_APPEND 文件指针指向末尾

O_WRONLY 只写O_CREAT 文件不存在时创建文件,

属性按基本模式属性

O_RDWR 读写O_TRUNC 若文件存在, 将其长度

缩为0, 属性不变

O_BINARY 打开一个二进制文件

O_TEXT 打开一个文字文件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

open()函数打开成功, 返回值就是文件描述字的值(非负值), 否则返回-1。

2. close()函数

close()函数的作用是关闭由open()函数打开的文件, 其调用格式为:

int close(int handle);

该函数关闭文件描述字handle相连的文件。

Puts与gets 函数的区别

Puts 函数与printf输出函数一样,都是将buffer(缓存中)的信息输入到控制台上,printf 将信息输入到控制台时能够进行格式的控制,比如控制符换行符号。而put函数只能够将信息原封不动的输入到控制台

Gets 函数与scanf函数的区别。

这两个函数都是将控制台信息输入到缓存区域中去的,但gets函数能够接受空格符换行符这些特殊的符号而scanf则不行

例如:对于char s[23] gets(s) 与scanf(“%S”,s) 输入字符abc de 则gets 中接受的是abc de 而对于scanf接受的只是abc因为abc后面的空格符他没法接受。

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(代表一个正整数据最小输出显示宽度

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语言数据的输入与输出 一.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语言编程常用头文件 C语言常用头文件总结 序号库类别头文件 1 字符处理ctype.h 2 地区化local.h 3 数学函数math.h 4 信号处理signal.h 5 输入输出stdio.h 6 实用工具程序stdlib.h 7 字符串处理string.h 字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。

头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos 正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h

广技师C语言复习题集2.练习(输入输出)(含答案解析)

一、选择题 1. 以下程序的运行结果是。 #include int main( ) { int m=5, n=10; printf(“%d, %d\n”,m++, --n); return 0; } A.5,9 B.6,9 C.5,10 D.6,10 2. 有定义语句int a,b; ,若要通过语句scanf(“%d, %d”, &a, &b); 使变量a得到数值6,变量b得到数值5,下面形式中错误的是。(注:□代表空格) A.6,5<回车> B.6,□□5<回车> C.6 5<回车> D.6,<回车> 5<回车> 3. 以下程序的输出结果是。(注:□代表空格) #include int main( ) { printf(“\n*s1=%15s*”, “chinabeijing” ); pirntf(“\n*s2=%-5s*”, “chi”); return 0; }

A.*s1=chinabeijing□□□* B.*s1=chinabeijing□□□* *s2=**chi* *s2=chi□□* C.*s1=*□□chinabeijing* D.*s1=□□□chinabeijing* *s2=□□chi* *s2=chi□□* 4. 已有如下定义语句和输入语句,若要求a1, a2, c1, c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。(注:□代表空格) int a1,a2; char c1, c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A.10A□20B<回车> B.10□A□20□B<回车> C.10□A□20B<回车> D.10A20□B<回车> 5. 已有定义int x; float y; 且执行scanf(“%3d%f”, &x,&y); 语句,若从第一列开始输入数据12345□678<回车>,则x的值为(1),y的值为(2)。(注:□代表空格) (1)A.12345 B.123 C.45 D.345 (2)A.无定值B.45.000000 C.678.000000 D.123.000000 6. 阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为。 #include int main( ) { int x,y,z;

c语言输入输出函数知识点总结

c语言输入输出函数知识点总结 1.I/O input output(输入端,输出端) 输入:从计算机向外部输出设备(显示器,打印机)输出数据。 输出:从输入设备(键盘、鼠标、扫描仪)向计算机输入数据。 2.C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数实现的。 3.字符输出函数一般形式:putchar(a);a可以是字符型变量、整型变量、字符常量、整型常量。函数作用:向终端输出一个字符。 4.字符输入函数一般形式:a=getchar( );函数作用:从终端输入一个字符。函数值:从输入设备得到的字符。 5.格式输出字符 %d:以十进制输出整数;%o:以八进制形式输出整数;%c:以字符形式输出一个字符;%s:输出字符串;%f:以小数形式输出单、双精度数,隐含输出六位小数。 6.getchar一次只能输入一个字符,有几个getchar()就输入几个字符,多输入的计算机不能识别。 7.getchar()输入的时候,空格键、Enter键、Tab键不能乱用,他们都当成字符对待。 printf("%d,%c,%f,%o,%x,%s",a,b,c,d,e,f); .......................................... 8.格式控制都是小写字母; 9.格式控制与后面要输出的变量是一一对应;................................................... 10.printf("%md",a); 1).m是整数; 2).m是指输出的结果占m列宽度; 3).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 4).如果m的绝对值小于原来数的宽度,则原样输出。................................................... 11.printf("%m.nf",a); 1).m是指输出占几列宽度,n是指输出结果小数点后保留几位有效数字; 2).m是正整数的话,输出结果差几列左补几个空格; m是负整数的话,输出结果差几列右补几个空格; 3).printf("%2.5f",a); m

C语言字符串的输入和输出

C语言字符串的输入和输出 字符串的输入和输出 %c人为加入\0进行输入输出 %s直接输入输出 *输入输出字符串时字符数组应有足够的存储空间,指针变量作为输入项时,指针必须已经指向确切的、足够大的存储空间 %s的使用 scanf("%s",地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 例:char str[15]; scanf("%s",str); abc123 1.不读入空格和回车,从空格处结束 2.输入字符串长度超过字符数组元素个数,不报错 3.当输入项为字符指针时,指针必须已指向确定的有足够空间的连续 存储单元 4.当为数组元素地址时,从此元素地址开始存放 2.printf("%s",地址值) 输出时遇到第一个'\0'为止 3.gets和puts函数 开头必须stdio.h #include"stdio.h"

1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 4.当为数组元素地址时,从此元素地址开始存放 5.printf("%s",地址值) 输出时遇到第一个'\0'为止 6.gets和puts函数 开头必须stdio.h #include"stdio.h" 1.gets(地址值) 地址值:字符数组名、字符指针、字符数组元素的地址 7.例: char str[10]; gets(str); 包括空格符 8. 2.puts(字符串起始地址) 遇第一个'\0'结束,自动加入换行符 9.字符串数组:数组中每个元素都是一个存放字符串的数组 可以将一个二维数组看作是字符串数组 10.char ca[3][5]={"A","BB","CCC"}; A\0 B B\0 C C C\0 字符型指针数组 char*pa[3]={"a","bb","ccc"}; pa[0]pa[1]pa[2] 可以重新赋值gets(pa[2]);

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

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语言格式输入函数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 格式字符串 格式字符串的一般形式为:

C语言输入输出函数

1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出; 若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。 另外, 若想在输出值前加一些0, 就应在场宽项前加个0。 例如: %04d 表示在输出一个小于4位的数值时, 将在前面补0使其总宽度

C语言标准输入输出详解

C CC C输入输出函数 输入输出函数输入输出函数 输入输出函数 本节主要介绍Turbo C2.0标准输入输出函数和文件的输入输出函数。通过本 节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的 读写函数, 并能开始进行一些简单的程序的编写。 控制流程语句主要包括: 条件语句、循环语句和开关语句。 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入

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

c语言中常用的函数和头文件

头文件ctype.h 函数列表<> 函数类别函数用途详细说明 字符测试是否字母和数字isalnum 是否字母isalpha 是否控制字符iscntrl 是否数字isdigit 是否可显示字符(除空格外)isgraph 是否可显示字符(包括空格)isprint 是否既不是空格,又不是字母和数字的可显示字符ispunct 是否空格isspace 是否大写字母isupper 是否16进制数字(0-9,A-F)字符isxdigit 字符大小写转换函数转换为大写字母toupper 转换为小写字母tolower 地区化 本类别的函数用于处理不同国家的语言差异。 头文件local.h 函数列表 函数类别函数用途详细说明 地区控制地区设置setlocale 数字格式约定查询国家的货币、日期、时间等的格式转换localeconv 数学函数 本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51) 头文件math.h 函数列表 函数类别函数用途详细说明 错误条件处理定义域错误(函数的输入参数值不在规定的范围内) 值域错误(函数的返回值不在规定的范围内) 三角函数反余弦acos 反正弦asin 反正切atan 反正切2 atan2 余弦cos

正弦sin 正切tan 双曲函数双曲余弦cosh 双曲正弦sinh 双曲正切tanh 指数和对数指数函数exp 指数分解函数frexp 乘积指数函数fdexp 自然对数log 以10为底的对数log10 浮点数分解函数modf 幂函数幂函数pow 平方根函数sqrt 整数截断,绝对值和求余数函数求下限接近整数ceil 绝对值fabs 求上限接近整数floor 求余数fmod 本分类函数用于实现在不同底函数之间直接跳转代码。头文件setjmp.h io.h 函数列表 函数类别函数用途详细说明 保存调用环境setjmp 恢复调用环境longjmp 信号处理 该分类函数用于处理那些在程序执行过程中发生例外的情况。 头文件signal.h 函数列表 函数类别函数用途详细说明 指定信号处理函数signal 发送信号raise 可变参数处理 本类函数用于实现诸如printf,scanf等参数数量可变底函数。 头文件stdarg.h 函数列表

C语言中的输入输出函数总结

putchar ():把变量中的一个字符常量输出到显示器屏幕上; getchar ();从键盘上输入一个字符常量,此常量就是该函数的值; printf ();把键盘中的各类数据,加以格式控制输出到显示器屏幕上; scanf ();从键盘上输入各类数据,并存放到程序变量中; puts ():把数组变量中的一个字符串常量输出到显示器屏幕上; gets ():从键盘上输入一个字符串常量并放到程序的数组中. sscanf(); 从一个字符串中提取各类数据。 putchar() 输出一个字符 getchar() 输入流中获取一个字符 例如: char c = getchar(); putchar(c); 格式化输入输出scanf()和printf()是最有用的,所以重点讲一下。 printf(): 一般形式: printf("格式控制".输出列表); eg : printf("a=%d,b=%f,c=%c\n",a,b,c); 1;格式控制. 格式控制是用双引号括起来的字符串,也称"转换控制字符串",它包含以下两部分信息. 格式说明:由"%"和格式字符组成,如%d,%f,%c,他的作用是把输出数据转换为指定格式输出,格式的说明总是由"%"字符开始的. 普通字符:需要原样输出的字符,或者是一些有特殊含义的字符,如\n,\t。 2;输出列表 就是需要输出的一些数据,也可以是表达式,如果在函数中需要输出多个变量或表达式,则要用逗号隔开. 一些特殊字符的输出: 单引号,双引号,和反斜杠的输出在前面加转义字符”\” 如:”\’” , “\””, “\\” %的输出用两个连在一起的%%,即printf(“%%”); 常用的格式说明如下: 格式字符 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀O) x 以十六进制形式输出无符号整数(不输出前缀OX) u 以十进制形式输出无符号整数 f 以小数形式输出单精度实数 lf 以小数形式输出双精度实数

c语言输入输出函数的定义

输入、输出函数 *46 D putchar函数可以向终端输出一个: A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 *47 B printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 *48 C printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 *49 D 已有定义int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是: A)整型变量的输出格式符只有%d一种 B)%x 是格式符的一种,它可以适用于任何一种类型的数据 C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的

D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度 *50 D 若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是: A) scanf(" %d%lx,%le",&x,&y,&z); B) scanf("%2d * %d%lf"&x,&y,&z ); C) scanf("%x %* d%o",&x,&y); D) scanf("%x%o%6.2f",&x,&y,&z); *51 A 已有如下定义和输入语句,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是int a1,a2; char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); A)10A 20B< CR> B)10 A 20 B C)10A20 D)10A20 B。 *52 B 已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则x 的值为 A)12345 B)123 。C) 45 D) 345 *53 B 已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345 678(回车),则y 的值为: A)无定值B)45.0000 C) 678.000000 D) 123.00000 *54 D 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是: int a1,a2; char c1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);

C语言输入输出练习题

c语言习题--输入输出函数 1. 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f); 为了把100和765.12分别赋给i和f,则正确的输入为 A)100<空格>765.12<回车> B)i=100,f=765.12<回车> C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车> 2. 以下程序的输出结果是 main( ) {int a=12,b=12; printf("%d %d\n",--a,++b); } A)10 10 B)12 12 C)11 10 D)11 13 4. 以下程序输出结果是 main( ) { int m=5; if(m++>5)printf("%d\n",m); else printf("%d\n",m--); } A)7 B)6 C)5 D)4 5. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 if(a main() { int a=2,c=5; printf("a=%%d,b=%%d\n",a,c); } A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d 13. 若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y)); 上面程序片段的输出结果是 A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值 15. 已知字母A的ASCII码为十进制的65,下面程序的输出是 main() { char ch1,ch2; ch1='A'+'5'-'3'; ch2='A'+'6'-'3'; printf("%d,%c\n",ch1,ch2);}

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 编码形式存在的,一个字符可能使用一个字节或多个字节来表

C语言输入输出函数全解

文章1 Turbo C2.0标准输入输出函数和文件的输入输出函数。 通过本节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的读写函数 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、输出函数printf( ) 和 scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入 设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 1. 格式化规定符 Turbo C2.0提供的格式化规定符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号作用 ────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法 ━━━━━━━━━━━━━━━━━━━━━━━━━━ 说明: (1). 可以在"%"和字母之间插进数字表示最大场宽。 例如: %3d 表示输出3位整型数, 不够3位右对齐。 %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6, 小数点占一位, 不够9位右对齐。 %8s 表示输出8个字符的字符串, 不够8个字符右对齐。 如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。

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类型的指针变量。

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