小结:
fopen("路径","打开方式") 打开文件
fclose(FLIE *) 关闭文件,防止之后被误用
fgetc(FLIE ) 从文件中读取一个字符
fputc(ch,FLIE) 把ch代表的字符写入这个文件里
fgets(FLIE*) 从文件中读取一行
fputs(FLIE *) 把一行写入文件
fprinrtf(FILE ,"格式字符串",输出表列) 把数据写入文件
fscanff(FILE ,"格式字符串",输入表列)从文件中读取
fwrite(地址,sizeof(),n,FLIE) 把地址中n个sizeof 大的数据写入文件里
fread(地址,sizeof(),n,FLIE) 把文件中n个sizeof 大的数据读到地址里
rwind(FLIE*) 把文件指针拨回文件头
feek(FLIE *,x, 0/1/2) 移动文件指针,0代表从头移,1代表从当前位置移,2代表从文件尾移
feof(FILE *) 判断是否到了文件末尾
#include <stdio.h>
FILE *stream, *stream1, *stream2;
int main()
{
int numclosed;
char list[30]; // 存放从文件中读取的数据
int i, numread, numwritten; // 读取的数目,写入的数目
// 打开文件data进行读,如果文件不存在,则失败
if( (stream1 = fopen( "data", "r" )) == NULL )
printf( "打开文件'data'进行读失败\n" );
else
printf( "打开文件'data'进行读\n" );
// 打开文件data2进行写
if( (stream2 = fopen( "data2", "w+" )) == NULL )
printf( "打开文件'data2'进行写失败\n" );
else
printf( "打开文件'data2'进行写\n" );
// 使用文本模式打开文件,对文件进行写操作
if( (stream = fopen( "fread.out", "w+t" )) != NULL )
{
// 向文件流中写入25个字符
for ( i = 0; i < 25; i++ )
list[i] = (char)('z' - i);
numwritten = fwrite( list, sizeof( char ), 25, stream );
printf( "写入 %d 个字符\n", numwritten );
fclose( stream );
}
else
printf( "打开文件fread.out时,发生错误,无法写数据到文件中\n" );
if( (stream = fopen( "fread.out", "r+t" )) != NULL )
{
// 从文件中读取25个字符
numread = fread( list, sizeof( char ), 25, stream );
printf( "读取的数据个数 = %d\n", numread );
printf( "读取的内容为 = %.25s\n", list );
fclose( stream );
}
else
printf( "打开文件fread.out时,发生错误,无法从文件中读取数据\n" );
// 关闭文件
if( fclose( stream2 ) )
printf( "关闭文件'data2'失败\n" );
// 关闭其他打开的文件
numclosed = fcloseall( );
printf( "使用函数fcloseall关闭的文件数目为 : %u\n", numclosed );
return 0;
} |